Firefox 每分钟向磁盘写入数兆字节的数据,为什么?

Firefox 每分钟向磁盘写入数兆字节的数据,为什么?

iotop -a(累计 I/O)在 Linux 上浏览互联网约 10 分钟后显示:

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 在会话期间写入的数据减少到零。(我知道这有点偏执,可能不值得这么麻烦。)

答案1

我做了调查写入我的 SSD 的来源。我发现了和你一样的东西。在分析写入日志并思考之后,我意识到这是 Firefox 的崩溃恢复。为了能够从崩溃中恢复,Firefox 必须将会话写入磁盘。会话信息存储在您列出的四个文件中。Firefox 每隔约 30 秒更新一次。如果在一个大会话中有很多标签,那么每天会累积几 GB。

但正如 surfasb 所说,这其实没有什么可担心的。

答案2

Firefox 中有一个设置可以控制会话恢复保存文件。转到about:config并更改:

  • 浏览器.sessionstore.间隔更改会话保存频率。在我的系统上,默认值为 15000(毫秒),因此每 15 秒写入磁盘一次。如果将其增加到 300000,则每 5 分钟只会写入一次。

  • 浏览器.sessionstore.enabled可以false完全禁用此功能。这将减少 Firefox 的磁盘写入量,但这也会阻止 Firefox 在崩溃时恢复您的会话。

答案3

在 Chrome 中加载大约 10 个页面后,我的页面看起来如下:

iotop -a 输出

所以我猜这是正常的交换/页面文件的使用。

(尽管有人认为我只使用了 31% 的 RAM,所以根本不会进行交换。)

答案4

浏览器将对 cookie 和会话的更改存储到磁盘是完全正常的。有关您打开了哪些选项卡的数据必须保存在某个地方。您的 usr 目录(我假设 Firefox 存储这些内容的地方)不应该位于 SSD 上,而是将其移动到 HDD 上。

相关内容