我有一个高 IO 应用程序,它运行良好,并且到目前为止扩展性很好。在过去的几个月里,我们一直在努力展望未来,预测下一个瓶颈会出现在哪里。其中一个肯定是文件系统。
我们目前正在监控
- 可用空间
- 每秒读取操作数
- 每秒写入操作数
我觉得这有点太稀疏了。我还应该关注什么?我甚至不确定每秒操作的“黄线”是多少。
答案1
一些建议
- 查看读取队列大小,如果你的应用程序是高度随机的,那么调整预读
/sys/block/<dev>/queue/read_ahead_kb
以确保你正在读取的数据需要,而不是操作系统认为您需要的数据。 - 如果你还没有切换到 deadline 调度程序
- 使用
noatime
mount 选项,除非你托管邮件池 data=writeback
如果你有好的备份,请安装- 密切关注目录大小,当然散列目录 inode 有帮助,但如果你可以自己对数据进行散列,那么你将获得更一致的结果