为什么在大多数静态文件系统上,它们都非常活跃?

注意:这是一个“logging我的过程”的问题,我将写一个答案。 令人高兴的是,serverfault已经帮助我解决了这个问题,因为写了我的情况,以便其他人能够评估它,使我意识到发生了什么事情。

  1. 我在Debian服务器上使用ext3文件系统。
  2. 尽pipe我的主文件系统在文件方面发生的活动很less,但是从kjournald (通过iotop看到)有很大的活动。
  3. 这个活动定期爆发,使我的整体平均写入速度提高到约2 MB /秒(这是我非常关心的,因为我想要一些固态硬盘,这个速度实际上已经足够严重威胁到非常大的写入耐久性当前模型)。
  4. 我已经使用noatime,nodiratime挂载了文件系统。
  5. 我已经将文件系统的日志提交间隔从5秒增加到了300秒。

到底是怎么回事? (Spoilers:这是一个用户空间的事情,我写这主要是为了强调可能违反直觉的潜在问题。)

看看发生了什么事情,运行在这个服务器上的主要应用程序pipe理着一个非常大,安装得很好的目录树,并且在那个树中写入文件的权限和权限并不理想。 因为让应用程序改变它是相当令人讨厌的,并且这些文件需要他们的所有权和权限合理地快速地修正(有些延迟是好的,但不是很多),所以我设置了一个cron工作, chown -Rchmod -R在大的,填充良好的目录树中。 一切似乎都在继续运行,所以我说,恩,这是过火,但它的工作,我会与它住在一起。

然而。 事实certificate,当您执行chownchmod无论是否发生任何更改 ,都会注册日志logging文件系统元数据。 因此,在文件系统上没有任何东西或者什么也没有改变,但是生成大量的元数据,这些元数据在日志犯下时就被打乱了。 哎呀。

于是我改变了chownchmodfind了在更改文件之前需要修改的文件,平均写入从2MB / s到50kB / s。 好极了。