如何确定进程是否受 CPU、内存或磁盘限制?

ssa*_*anj 44 performance

如何确定进程是否绑定到 CPU、内存或磁盘?

小智 19

这需要一些专业技能。这取决于。例子:

  • 如果有足够的内存并且磁盘看起来不太忙,则它可能受CPU 限制。看看 CPU 使用率,如果它接近 100%,它就是 CPU 限制。如果不是,则在实施中存在人为瓶颈。例如,在双核 CPU 上,单线程进程的 CPU 使用率不会超过 50%。

  • 如果CPU和内存可用,但磁盘很忙,或者IO延迟似乎很高,则可能是其IO受限。看看添加更多磁盘(RAID?)是否有帮助。

  • 以上都不是?检查可用内存。

  • 内存够吗?过程本身可能存在人为瓶颈,即可能有人忘记删除睡眠(1)?不,通常不是那么容易。;)

我们为大多数处理性能敏感产品的公司的性能工程师设立了一个完整的实验室是有原因的!

使用 sar、vmstat、iostat、oprofile、lockstat、dtrace、产品特定的性能监控工具等工具来调试性能问题。

  • 有没有一种工具可以将所有这些联系在一起? (2认同)

mkm*_*mkm 12

退房iotop,可能有用


Jan*_*anC 9

htop是一种可用于实时检查大量进程统计信息(内存、CPU 使用率、I/O 等)的工具。它不会取代 Sudhanshu 命名的更专业的工具,但可能是一个好的开始。