我正在运行最近发布的 Fedora 18,并用它做一些计算密集型的事情。结果是……不稳定,充其量。但是!这差不多是我所期望的,或者至少不是我在这里要抱怨的。
我遇到的问题是 XFS 处理磁盘写入的方式 - 速度很慢。我有三个 XFS 分区,每当系统崩溃时,任何最近创建的文件都会消失。噗!我已经厌倦了一遍又一遍地下载同一首歌曲,更不用说我正在处理的实际有用数据了。据我所知,这与写入缓存有关。
因此,我认为有两种解决方案。最明显的一种(虽然可能不那么可靠)是强制驱动器确保文件在读取之前确实已写入。但也许更好的解决方案(特别是如果我可以设置 cronjob)是强制每次写入一次n分钟;我想可能是 5 分钟。显然,如果驱动器在过去 5 分钟内没有被写入,那么它承受的压力就不足以使缓存变得值得!
问题是,XFS 是否有强制写入的外部命令?或者可能有自己的选项?
编辑:投反对票有什么原因吗?难道除了我之外所有人都知道这件事吗?如果这太愚蠢了,也许有人可以帮我解释一下。
答案1
您无法强制 XFS 进行写入 - 并且您看到的问题不太可能与 XFS 有关。
大部分缓冲是在 VFS 层完成的。您可以通过执行刷新或安装磁盘同步来强制将数据推送到下一层(在本例中为 XFS) - 但是 XFS 仍会缓冲部分数据。
话虽如此,除非整个机器都崩溃了,否则数据只能到达应用程序的缓冲区 - 它还不在 VFS 中。但是从您的帖子来看,这似乎正是这里发生的事情。这对我来说似乎相当令人惊讶:我发现 Linux 近年来非常稳定 - 我见过的少数系统崩溃与硬件有关。
解决问题的方法是解决系统崩溃的原因 - 如果自上次操作系统升级以来系统不太稳定,那么就恢复到你知道的稳定状态。
XFS 如何处理磁盘写入 - 缓慢
这里的问题是什么?您只是说将内容写入磁盘时存在延迟,还是说性能很差?
有一些方法可以使文件系统更具弹性(主要是以吞吐量为代价),但是您不应该开始考虑这些方法,直到您尝试解决可用性问题为止。