題 Firefox每分鐘向磁盤寫入數兆字節的數據,為什麼?


iotop -a 大約10分鐘後,Linux上的(累計I / O)顯示。瀏覽互聯網:

Total DISK READ:       0.00 B/s | Total DISK WRITE:       0.00 B/s               
  TID  PRIO  USER     DISK READ DISK WRITE>  SWAPIN      IO    COMMAND           
17330 be/4 wojdyr     1540.00 K     38.48 M  0.00 %  0.00 % firefox              
  403 be/3 root          0.00 B     31.65 M  0.00 %  0.06 % [jbd2/sda5-8]        
17276 be/4 wojdyr      800.00 K     31.06 M  0.00 %  0.00 % firefox              
17329 be/4 wojdyr        0.00 B     20.96 M  0.00 %  0.00 % firefox              
31896 idle wojdyr        0.00 B   1200.00 K  0.00 %  0.00 % virtuoso-~.ini +wait 
31924 be/4 wojdyr        0.00 B   1064.00 K  0.00 %  0.00 % akonadi_n~ail_feeder 
18959 be/4 wojdyr        0.00 B    796.00 K  0.00 %  0.01 % firefox

我對寫入磁盤的數據量感到非常驚訝。我關閉了磁盤緩存,但沒有顯著差異。我關掉了 block-reported-attack-sites/web-forgeries  - 沒有改變。

在Firefox(10.0.1)中寫入磁盤的速率是否正常?它快速超過了我的firefox配置文件的總大小。

查看firefox配置文件中文件的修改時間,我看到一些文件經常被修改:

cookies.sqlite{-wal,-shm}
sessionstore.js
places.sqlite{-wal,-shm}
permissions.sqlite

我的系統或配置有問題,還是FF的典型問題?

我不喜歡這種無意義的寫入(SSD)磁盤。我能為此做些什麼嗎?

編輯: 我發現了 本指南 如何將整個Firefox配置文件重定位到RAM。它在會話期間將firefox寫入的數據減少到幾乎為零。 (我知道這有點偏執,可能不值得麻煩。)


23
2018-03-11 13:22


起源


我認為你太在意SSD的寫入限制了。除非它是第一代固態硬盤,否則你的筆記本電腦會在固態硬盤出現之前死掉。 - surfasb
你是對的。我知道我沒有理由擔心這個磁盤,但我無法幫助它:-) - marcin
我知道這是一個古老的問題,但是當我用Google搜索時,它就出現了。對我來說,我發現Firefox的Web Of Trust(WOT 20150708)附加組件每秒寫入磁盤38.8 KB。所以我禁用了附加組件。 - Luigi Plinge
ServeTheHome最近也發現了這個問題: servethehome.com/... - bwDraco
@surfasb“除非它是第一代固態硬盤,否則你的筆記本電腦會在固態硬盤出現之前死掉。”現在情況正好相反 - 新的基於TLC的固態硬盤比使用MLC的老式固態硬盤壽命短得多,特別是採用SLC NAND的固態硬盤。 - ggurov


答案:


我做了調查 寫入我的SSD的地方來自哪裡。我發現你做了同樣的事情。在分析了寫入日誌以及思考事物後,我意識到這是Firefox的崩潰恢復。為了能夠從崩潰中恢復,Firefox必須將會話寫入磁盤。會話信息存儲在您列出的四個文件中。 Firefox每隔約30秒更新一次。在大型會話中有很多選項卡,每天可以增加幾GB。

但正如surfasb所說,這並不是什麼值得擔心的事情。


16
2018-03-12 20:02



謝謝!好的分析。你知道是否可以改變磁盤寫入的頻率?每30秒對我來說似乎太頻繁了 - marcin
在 about:config 有一個叫做的設置 browser.sessionstore.interval。有趣的是,根據它,Firefox應該每15秒存儲一次。這不是我觀察到的間隔。 - Mr Alpha
請注意,如果您有SSD,這些過多的寫入肯定是值得擔心的。 - Pointy
並不是的。如果Firefox在一天內完成10GB的寫入,那麼十年內仍然只能增加36TB的連續寫入。即使它的36TG順序寫入這樣的低端SSD也是一個問題,在十年內其他東西可能會有時間先死掉。 - Mr Alpha
這些70-75 TB的數字與保修有關,這意味著如果您超過了寫入次數,則無法在保修期內更換。這並不意味著驅動器會在那時磨損並死亡,僅僅因為它具有3年保修期,驅動器將在3年後死亡。與保修一般情況一樣,它們相當保守。 - Mr Alpha


Firefox中有一個設置可以控制頻率 會話恢復 保存文件。去 about:config 並改變:

  • browser.sessionstore.interval 更改會話保存的頻率。在我的系統上,默認值為15000(毫秒),因此它每15秒寫入磁盤。如果將此值增加到300000,則每5分鐘只會寫入一次。

  • browser.sessionstore.enabled 可以轉向 false 完全禁用此功能。這將減少Firefox執行的磁盤寫入量,但這也會阻止Firefox在崩潰時恢復會話。


22
2018-03-12 22:11



在我的RHEL 7上,firefox將我的負載推高到6,但它對CPU使用率的貢獻不大。所以它應該是消耗它的I / O.此解決方案實際上減少了​​I / O流量,從而使Firefox再次可用。 - Ding-Yi Chen


加載大約10頁後,Chrome中的一些內容如下所示:

iotop -a output

所以我猜這是正常的交換/頁面文件使用。

(雖然有人會認為我只使用了31%的RAM,但它根本不會交換。)


3
2018-03-11 20:46



謝謝你的測試!我看起來不像交換,顯然是firefox如果強迫盡可能多地將一些文件寫入磁盤而不是將它們保存在內存中。 - marcin


FF以2.5 + MB / s的速度不斷寫入磁盤!我跑了 sudo iosnoop -p PID 並發現了 Evernote Web Clipper 正在做所有的寫作。我刪除它,磁盤寫入下降到0到幾kb / s。


1
2018-02-19 17:00





瀏覽器將更改存儲到磁盤的cookie和會話是完全正常的。有關您打開哪些標籤的數據必須保存在某處。您的usr目錄(我認為這是Firefox存儲這些東西的地方)不應該位於SSD上,而是將其移動到HDD。


-1
2018-03-11 13:27



問題在於大量的書面數據,比存儲cookie或打開標籤所需的數據高出幾個數量級。關於硬盤,我只有SSD。 - marcin
是筆記本電腦還是類似設備?使用純SSD設置效率不高,所以如果你可以幫忙,我建議讓硬盤存儲易失性文件。我想你的FF可能有問題,但我懷疑使用我們的數據進行診斷會很容易。您是否嘗試過備份FF配置文件並進行全新安裝? - kotekzot
我不知道如何不使用SSD應該有所幫助。如果頻繁訪問該文件,那就完全沒問題,甚至建議將其保存在SSD上。我可以理解在HDD上存儲電影/照片,因為時間/速度在這裡並不重要,但由於文件經常被訪問,它應該存儲在原來的位置。如果你把它放在你的答案中我會-1。答案本身是好的,只是評論不是真正的東西繼續。 - MadBoy
@MadBoy如果這些文件位於硬盤驅動器上,那麼整體速度應該沒什麼關係,但它會為SSD壽命帶來奇蹟。 - kotekzot
kotekzot - “它將為SSD壽命創造奇蹟”  - 支持您索賠的任何資源?我會說在SSD上存儲會話要好得多,因為它速度快,不會產生無休止的噪音/不煩人。 - Tomas


也許某人已經破壞了該機器,並將其用於匿名P2P或F2F網絡與混淆和加密的文件系統?喜歡:

https://en.wikipedia.org/wiki/I2P

要么

https://en.wikipedia.org/wiki/Darknet_(file_sharing)

https://en.wikipedia.org/wiki/Botnet


-1
2018-03-11 16:42



這可能不是這個,但感謝你試圖幫助,-1不是我:) - marcin
我無論如何都做了太多的假設,但我想如果沒先測試就不應該提出災難。我忘了網頁上有多大的圖片和內容。 - conspiritech
他們可能會這樣做,因為他們不想在你決定啟動photoshop或其他東西時佔用內存,而且不切實際/不允許在它周圍編寫規則。 - conspiritech