这是来自不同应用程序机器的 HDD avgqu-sz 图表: 应用程序将数据缓存在内存中,每 n 分钟将数据刷新到文件系统 + 每 m 分钟从内存中的文件系统(重新)加载数据。这就是尖峰的原因。这些高峰期间的块设备利用率为 80-95%。
问:我需要担心我的磁盘性能吗?如何解释此图 - 好还是不好?我需要优化一些东西吗?
- 是的,我有相当高的峰值〜1k,但队列大小为〜1 =>一天平均为〜16 - 我不知道我是否对这个平均值感到满意
- 是的,我知道公制 avgqu-sz 是什么意思
- 是的,我已经针对高 IOps(noatime、nodirtime)优化了我的文件系统
这只是一个概括性的概述,并没有涵盖所有内容。只要 nr_requests 保持 queue_Depth,I/O 就会很快通过。当这些请求超过队列深度并且 I/O 开始在调度程序层中保持时,就会出现问题。
查看您的图表,我强烈建议 1:检查具有高峰值的磁盘 2:尝试更改 nr_requests 和 queue_depth 的值以查看是否有帮助 3:更改测试环境中的调度程序(因为您的数据此处不包含合并请求(读/写)..所以我不能评论)
超过 1,000 个请求的平均队列大小很麻烦,除非您正在运行一个阵列,其中数百个磁盘暴露为单个设备。
但是,从您的图表来看,我认为您的大多数尖峰都是测量或图形伪影-您的数据看起来像是以 5 分钟的间隔收集的,但尖峰的宽度确实基本上为零-非常不寻常。您应该查看近实时收集
sar
或显示的原始数据以排除这种情况。iostat
如果您仍然看到每个使用的主轴的队列大小超过 30 个请求,请返回此处查看数据。