我的服务器包含128个监视器,这导致许多随机写入IO被提交。如果我使用SSD,许多写作会使它很快崩溃。
我读过一些关于F2FS的文章,并且知道它在闪存盘和随机/小的写作中工作得更好。
我的服务器上有很多随机的写IO。它总是会降低我服务器的性能。
如果我将F2FS安装在HDD上?这比ext4更有效吗?
RAID0只用于性能基准,实际上我将使用RAID5或RAID6。
在我搜索了很多之后,有两种可能的方法:
发布于 2020-06-20 13:13:36
不要使用RAID0,任何一个驱动器的故障都会杀死数组。RAID6,RAID10,即使是一个没有数组的驱动器,对可用性来说也会更好。
f2fs打算对现代固态设备友好,Linux可以运行得非常快。
但是,如果没有数据,就不可能在数组上做出像f2fs这样的通用语句。您需要考虑到您的工作负载是什么,如果I/O模式已经在与您的系统类似的系统上进行了基准测试,以及存在哪些限制因素。
做一个容量分析。估计诸如每秒的数据库查询,或读取和写入多少文件。使用像iostat -xz 1这样的工具来测量IOPS。如果r/s和w/s数字接近设备的额定容量,您可能需要更快的磁盘。预计大约100 IOPS每旋转磁性,并至少有几千IOPS的大多数SSD。无论磁盘连接为SATA还是NVMe,都会产生不同的效果。
评估系统上每个资源的性能。如果您是CPU或内存绑定,快速存储是有限的帮助。内存作为缓存尤其有用。过多的分页是不好的,因为交换文件窃取了存储系统的性能,但速度不如DRAM。
现在了解了系统的性能之后,就可以开始评估对存储系统的更改了。
发布于 2020-06-20 14:45:18
在一个经典的硬盘上使用F2FS并不是一个好主意:虽然它的随机写入性能可能比EXT4或XFS要高,但老化的文件系统上的顺序读取速度将非常令人失望。
若要提高随机写入性能而不具有功率丢失保护的写回缓存(read:一个真正的RAID控制器),您必须将应用程序配置为不发出fsync(),但这将大大增加意外关闭时丢失数据的可能性。不要在系统级别禁用屏障(即:通过告诉内核您已经写入缓存),因为这样会在失去电源的情况下破坏整个文件系统。
您还可以考虑使用ZFS (最好将条带留给自己,而不是MDRAID层):由于其CoW特性,随机写入比其他文件系统快得多,而高级缓存避免了顺序读取的问题。它甚至支持sync=disabled:如果在意外关闭的情况下可以容忍~5s数据丢失窗口,它将提供大量随机写入IOP,而不会影响应用程序或文件系统的一致性。
最后,如果使用EXT4,可以使用data=journal进行快速测试:虽然这会降低顺序写入性能,但随机写入应该比默认日志模式要快一些。
https://serverfault.com/questions/1022261
复制相似问题