Solaris ZFS最佳实践指南build议保持ZFS池利用率低于80%以获得最佳性能:
- 将池空间保持在80%以下,以保持池性能。 目前,如果池很满并且文件系统经常更新(例如,在繁忙的邮件服务器上),池性能可能会降低。 完整的池可能会导致性能损失,但没有其他问题。 如果主工作负载是不可变的文件(只写一次,永远不要删除),那么可以将池保持在95-96%的利用率范围内。 请记住,即使大部分静态内容在95-96%范围内,写入,读取和重新同步性能可能会受到影响。
关于如何实现这一点的一个共同的build议似乎是使一个文件系统或卷不被用来存储任何数据,但是其大小预留约为池容量的20%。
我完全可以看到,ZFS的copy-on-write行为,这将如何帮助旋转存储,因为旋转存储往往会受到相当严重的IOPS约束,因此给文件系统空间做大量的连续分配是非常有意义的(即使他们不会一直这样使用)。
然而,我不确定80%的目标对于固态存储有多less意义,除了每千兆字节好一点的价格之外没有任何地方接近IOPS旋转存储的限制。
出于性能方面的考虑,SSD支持的ZFS池应该限制在不到80%的容量利用率,就像硬盘支持的池一样,或者SSD支持的池可以满足更多而不会对I / O性能产生重大不利影响?
我会说是的。
我的规则是,在使用尚未过度configuration的驱动器时,仅限于使用SSD的池的数量低于87%。
SSD使用案例介绍了驱动器耐久性组件,而随机写入延迟不太像旋转磁盘的问题。
无论哪种方式,无论select何种磁盘,为什么您都有意计划在高容量级别运行您的工作负载? 所有写入时复制文件系统都会警告/提醒,所以如果可以避免的话,我仍然可以避免这么高。
任何系统太满的问题是find下一个可用空间来写入。 ZFS和任何写入时复制的系统都可能特别容易受到这个问题的影响,以及任何基于日志的系统,在这个系统中有一个后台进程,在原则上被覆盖之后清除未使用的数据,但新数据实际上是写在别的地方。 还有一个碎片问题,会影响性能,因为难以find大的连续空间来写入,并且数据需要在不同的地方被分割。
所有这些与媒体无关,无论是硬盘还是SSD。