首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚拟机上的Ext4缓存选项

虚拟机上的Ext4缓存选项
EN

Server Fault用户
提问于 2013-06-19 14:53:33
回答 1查看 1.3K关注 0票数 6

我试图加快用于开发/自动化测试环境的虚拟机,并希望验证有关磁盘写入缓存的一些假设。

我使用ext4作为VM中的根文件系统,我并不真正关心停电场景。如果有一个电源损耗和磁盘损坏,整个机器可以在几分钟内重建。对我来说,这意味着可以安全地应用以下选项,并且对应用程序没有任何影响--它们只会影响缓冲数据写入磁盘本身的方式,但缓存在内存中的表示形式总是准确的:

  • 无障
  • data=writeback
  • 势利
  • commit=3600

这是正确的吗?为了提高性能,我还需要考虑其他ext4参数吗?

EN

回答 1

Server Fault用户

发布于 2013-08-06 14:41:37

journal_async_commit,noauto_da_alloc,dioread_nolock。有关描述,请参见ext4 4文档

另外,如果您不使用nouser_xattr,noacl可能会给第一次查找带来轻微的性能改进(但是,除非您使用的是数百万个文件的顺序,否则它们并不相关)。

请注意,使用commit=3600 (由于批处理而提高某些操作的总体时间)可能不是您想做的事情。当它触发(可能比3600更早,由于日志的充分条件),您将有大量的I/O将停止运行的机器上的任何东西,直到它完成(这可能是分钟,取决于您的日志大小和I/O速度)。较小的值将为您提供更多但更小的元数据突发,因此它不会看起来像机器“挂起”。这对你来说可能是问题,也可能不是问题。

如果您不希望jounrnal,您可能希望完全禁用它--请注意,它可能会在一定程度上提高性能,但也可能会使它变得更糟:

代码语言:javascript
复制
tune2fs -O ^has_journal /dev/sdXX

另外,一些特定的负载(比如在短时间内创建和删除许多小文件,例如繁忙邮件服务器的SMTP邮件队列)可能实际上更喜欢data=journal而不是data=writeback (甚至根本没有日志)--因为它只使用日志(这是线性写入而不是随机写入,因此在非SSD存储上要快得多)。

但最重要的是--你必须通过基准来找出哪一个最适合你

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/516992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档