vir*_*tor 6 virtualization performance ext4
我正在尝试加速用于开发/自动化测试环境的虚拟机的站立,并希望验证有关磁盘写入缓存的一些假设。
我ext4用于 VM 中的根文件系统,我并不真正关心断电情况。如果断电和磁盘损坏,整个机器可以在几分钟内重建。对我来说,这意味着可以安全地应用以下选项,它应该对应用程序没有影响——它们只会影响缓冲数据写入磁盘本身的方式,但缓存的内存表示将始终准确:
这样对吗?是否还有其他 ext4 参数我应该查看以提高性能?
Journal_async_commit、noauto_da_alloc、dioread_nolock。有关说明,请参阅ext4 文档。
另外,nouser_xattr、noacl 如果您不使用它们,可能会在首次查找时带来轻微的性能改进(但除非您使用数百万个文件的顺序,否则不相关)。
请注意,使用 commit=3600 (同时由于批处理而改善了某些操作的总体时间)可能不会达到您想要的效果。当它触发时(可能比 3600 早得多,因为日志已满),您将遇到大量 I/O 突发,这将停止机器上运行的大部分内容,直到完成(可能需要几分钟,具体取决于您的日志大小和输入/输出速度)。较小的值将为您提供更多但更小的元数据突发,因此它看起来不会像机器“挂起”。这对您来说可能是问题,也可能不是问题。
如果您不需要日志,您可能需要完全禁用它 - 请注意,它可能会在一定程度上提高性能,但也可能会使情况变得更糟:
tune2fs -O ^has_journal /dev/sdXX
Run Code Online (Sandbox Code Playgroud)
此外,一些特定的负载(例如在很短的时间内创建和删除许多小文件,例如繁忙的邮件服务器的 SMTP 邮件队列)可能会矛盾地实际上更喜欢 data=journal 而不是 data=writeback (甚至根本没有日志) - 因为它将仅使用日志(这是线性写入而不是随机写入,因此在非 SSD 存储上速度更快)。
但最重要的是 - 您必须进行基准测试才能找到最适合您的 - 没有灵丹妙药。
| 归档时间: |
|
| 查看次数: |
1147 次 |
| 最近记录: |