以下是我的服务器的磁盘延迟图。该服务器有两个5400 RPM 32MB 缓存 SATA 3.0Gb/s硬盘驱动器安装有软件 RAID 1 配置。这些天没有发生任何特殊变化,正如您在下图中看到的,IO 显示正常波动。(第一个峰值是由每周玉米引起的)
它每天接待 130,000 名独立访客,每天的页面浏览量超过 200 万次,其中大部分由 memcache 提供服务。
我不知道是什么原因导致了这个问题。
答案1
这里可能有许多因素在起作用。
1) 您的 IO 负载正在增加
您的图表或信息中未显示您的 IO 负载情况。您的系统是否在 IO 等待中花费更多时间?您的读/写队列的深度是否在变化?如果是这种情况,那么我认为 5400 RPM 驱动器可能太慢,无法满足您的需求。主轴速度 (RPM) 越慢,读取头定位数据所需的时间就越长。
1a) 数据碎片化
这在很大程度上取决于您的 IO 负载特性,但您的文件系统可能已经变得高度碎片化,这意味着读取较大块的数据需要更长的时间。
2) 交换空间抖动
您的系统内存出了什么问题?系统是否内存不足,现在需要抖动交换文件?如果是这种情况,那么您的系统整体可能会表现缓慢。无论哪种情况,请检查您的进程表。
3) 可能即将发生磁盘故障
您的磁盘可能即将发生故障。我建议您安装 smartmon 工具并使用 smartctl 实用程序查看 SMART 数据。
答案2
@Red Tux 的回答很有道理。如果没有更多细节就无法准确回答:
- 服务器在做什么?它是数据库、文件服务器还是 Web/应用服务器?
- 然后 DB 可能会寻找 1a)
- web/app 然后寻找 2)
- 然后查找文件服务器 3)
- 状态监测和iostat报告会有所帮助。在峰值期间延迟 5~10 秒运行 1 分钟并提交。