Nejde patrně o žádnou novou
skutečnost, ale upozorněno na ní bylo asi až nyní. Web
ServeTheHome ve svém článku k tomuto problému postihujícím
například Chrome a Firefox píše, že si redaktor velké
zátěže, kterou prohlížeč vytváří, všiml náhodou. Ovšem
šlo o víc jak 10 GB zapsaných za jeden den bez nějaké
aktivity, která by vše vysvětlovala. Problém je v tom, že
prohlížeče zapisují téměř kontinuálně velké množství dat
pro potřebu obnovení otevřených stránek v případě pádu
nebo zamrznutí programu či celého počítače.
Pro tento účel Firefox ukládá
zálohy do souboru recovery.js a to ve výchozím nastavení
každých 15 sekund. V současné architektuře této funkce je
údajně nutné zapisovat celý stav při každé změně (jak
vyplynulo z diskuse
na Hacker News, vývojáři jsou si problémů vědomi). Firefox
by neměl být úplně hloupý a data nezapisuje,
pokud je nečinný. Ovšem problém je v tom, že webových
stránkám na pozadí běží skripty a další neplecha a ve
výsledku je tak dnes váš prohlížeč i při zdánlivé
neaktivitě skutečně nečinný jen zřídka.
Spráce úloh u mě: Firefox za včerejšek uložil 5 GB dat při běžném používání.
Bez stahování velkých objemů dat nebo aktualizací
Průšvih je s Firefoxem
i s Chrome
Kromě recovery.js ale mohou velkou
zápisovou zátěž vytvořit i zápisy stránek do souborů
cookie, které zdá se řada provozovatelů nadužívá a ukládá
si do nich data příliš často. Redaktor ServeTheHome zkusil
otevřít různé hardwarové weby a recenze a ponechav je
45 minut ve dvou oknech svému osudu, dostal se za tuto dobu na 1,1
GB zapsaných cookies. Podle množství otevřených záložek vám
tedy prohlížeč Firefox může zdá se alespoň v některých
situacích zapisovat i 10–20 GB dat denně a více.
Jenže Firefox v tom není sám, stejný
web pak vyzkoušel i Chrome a dostavilo se stejně
nepříjemné překvapení, produkt Googlu podobnou testovací
metodikou vygeneroval 24 GB/den. Zda je třeba Edge v zápisech
rozumnější, nevím a zkusím otestovat. Osobně jsem
Firefoxem ve včerejším sezení svou typickou činností za několik
hodin také najezdil okolo 5 GB, takže pokud nelže pohled do
správce úloh, problém mohu potvrdit.
Extrém: přes 30 GB uložených během jednoho dne (Zdroj: ServeTheHome)
Na jednu stranu se dá říct, že toto
asi stále ještě SSD nezničí v nějakém blízkém
horizontu, alespoň ta lepší dle destrukčních testů zvládala
vyšší zátěž, než je deklarováno v často konzervativních
garantovaných číslech. Jenže, lowendové TLC disky tyto garance
mají tak nízké, že už do nich Google či Mozilla narážejí.
Například 120GB
Toshiba OCZ TL100 vám garantuje jen 30TB při záruce tři roky
a na jeden den tak oficiálně máte jen 27 GB – a toto
není nějaká výjimka, ale běžná realita levných SSD. Jak se
zdá, můžete toto číslo snadno nevědomky najezdit jen
prohlížením webu, pokud máte otevřených hodně záložek.
Jistě, disk možná vydrží déle. Jenže můžete přijít
o záruku a být odmítnuti s reklamací SSD, které
třeba selhalo z jiných příčin. Opotřebení také zvyšuje
riziko chyb v uložených datech.
Kromě recovery.js škodí také přílišné ukládání dat do souborů cookie (Zdroj: ServeTheHome)
Publicita okolo tohoto problému snad
přiměje vývojáře, aby se na problém pokud možno prioritně
zaměřili a zredukovali zbytečné zápisy použitím
inkrementálních záloh, komprese a vůbec zinteligentněním
použitých algoritmů. Posvítit by si asi měli i na agresivní
cookies. Desítky gigabajtů totiž určitě nejsou na jeden den
provozu v pořádku.
Řešení pro Firefox
Pokud jste jako já a představa
SSD (nebo hůř, třeba napevno osazeného 32GB eMMC
v tabletu/notebooku) soustavně opotřebovávaného „zubem
prohlížeče“ by vám nedávala spát, pak se lze excesivním
zápisům bránit změnou frekvence, s jakou prohlížeč data
ukládá. Přinejmenším máte-li Firefox. V něm to lze
provést tak, že napíšete do adresního řádku about:config pro
přístup k pokročilým volbám, a pak si zobrazíte volbu
„browser.sessionstore.interval“. Její výchozí nastavení
je 15 000 (15 sekund v milisekundách) a zvýšením
hodnoty frekvenci zápisů omezíte. Podle toho, jak čerstvou chcete
mít obnovu záložek po případném pádu, bych nastavil nějakou
hodnotu v řádu minut (příklad: 600000 pro 10 minut, tedy 40×
dlouhou periodu).
Ve Firefoxu je výchozí perioda ukládání 15 sekund. Většině z nás by měl stačit daleko delší interval
Pro Chrome se mi bohužel zatím
podobný postup najít nepodařilo, věci asi moc nepomáhá, že ze
začátku média „kauzu“ spojila čistě s Firefoxem. Pomoci
by asi mohla i opatření jako neukládání cookies a historie
(anonymní prohlížení) a použití noscriptu, která ale
výrazně zasahují do funkčnosti prohlížeče nebo webů.
Toto přiškrcení by asi jinak mohlo
být přínosné i co se týče výkonu, pokud používáte jako
systémové úložiště mechanický disk. Odlehčení konstantní
I/O zátěže by mohlo být znát na odezvě systému. Nevýhoda je
samozřejmě v tom, že pokud systém či Firefox spadne, bude
obnovená záloha stavu starší.
Zdroje: ServeTheHome,
Hacker News