Tot*_*oto 6 linux optimization io
做一个top检查io等待,我得到这些数字:
Cpu(s): 6.7%us, 1.4%sy, 1.2%ni, 85.5%id, 5.0%wa, 0.0%hi, 0.3%si, 0.0%st
Run Code Online (Sandbox Code Playgroud)
看看这些数字 (%us ~= %wa),它们是否意味着:
Mat*_*Ife 19
评估这些数字时需要小心。
在这种情况下,IOWait 是对给定时间段内 CPU(或所有 CPU)空闲时间的度量,因为所有可运行的任务都在等待 IO 操作完成。
在您的示例中,如果您有 20 个 CPU,其中一项任务真正敲打磁盘,则此任务(实际上)将 100% 的时间花费在 IOWait 上,随后运行此任务的 CPU 花费几乎 100% 的时间在等等。但是,如果其他 19 个 CPU 有效空闲且未使用此磁盘,则它们会报告 0% IOWait。这导致平均 IOWait 百分比为 5%,而实际上,如果您查看磁盘利用率,这可能会报告为 100%。如果在磁盘上等待的应用程序对您很重要——这 5% 有点误导,因为瓶颈中的任务可能会遇到比 5% 慢得多的性能问题。
等待的 CPU 进程几乎与工作的 CPU 进程一样多?(=> 坏)
可能,请记住大部分 CPU 运行任务,而任务是请求 IO 的内容。如果两个单独的任务忙于在两个单独的 CPU 上查询同一个磁盘,这将使两个 CPU 处于 100% IOWait(在 20 个 CPU 示例中,总体平均 IOWait 为 10%)。
基本上,如果您有很多任务需要 IO,尤其是来自同一个磁盘,而且该磁盘的利用率为 100%(请参阅 参考资料iostat -mtx),那么这很糟糕。
工作流程正在等待执行计划的 5.0%?(=> 在这种情况下可以)
不会。工作进程几乎肯定是全职等待 IO。这只是一般的报告情况(“其他 CPU 不忙”)掩盖了 CPU 有许多任务要运行的百分比或事实,其中许多任务不需要执行 IO。
作为一般规则,在多 CPU 系统上,IOWait 百分比(等于 CPU 数量除以 100)可能需要调查。
别的东西
看上面。但请注意,执行大量写入的应用程序会受到限制(停止使用回写,开始直接写入磁盘)。这会导致这些任务产生高 IOWait,而同一 CPU 上的其他任务写入同一磁盘则不会。所以例外确实存在。
另请注意,如果您有 1 个 CPU 专用于运行 2 个任务,一个是重度 IO 读/写器,另一个是重度 CPU 用户,那么在这种情况下,CPU 将报告 50% IOWait,如果您有 10 个这样的任务将是 10% IOWait(和一个可怕的负载),因此报告的数字远低于实际可能存在的问题。
我认为您确实需要查看iostat -mtx一些磁盘利用率指标,并pidstat -d获取一些每个进程的指标,然后考虑以这种方式访问这些磁盘的应用程序是否可能导致问题,或其他潜在的应用程序击中这些磁盘可能会导致问题。
CPU 指标确实充当了潜在问题的指标,它们是通用的,因此了解它们可能过于笼统的地方是一件好事。
| 归档时间: |
|
| 查看次数: |
52975 次 |
| 最近记录: |