我在理解htop
Linux top命令的流行替代品显示的信息时遇到了麻烦。
在上面的屏幕截图中,列出了许多Java实例,但是只有父实例使用CPU时间。还有什么?
当CPU%列显示的所有进程中发生的事情都不多时,为什么CPU利用率栏显示如此繁忙的内核?实际上,它们大多数时候都没有关联地运动。
当核心几乎总是绿色且看上去很忙时,为什么右上角的平均负载(为什么我认为是3步历史)这么低?
有人会这么善良地解释如何阅读此信息吗?
谢谢!
我在理解htop
Linux top命令的流行替代品显示的信息时遇到了麻烦。
在上面的屏幕截图中,列出了许多Java实例,但是只有父实例使用CPU时间。还有什么?
当CPU%列显示的所有进程中发生的事情都不多时,为什么CPU利用率栏显示如此繁忙的内核?实际上,它们大多数时候都没有关联地运动。
当核心几乎总是绿色且看上去很忙时,为什么右上角的平均负载(为什么我认为是3步历史)这么低?
有人会这么善良地解释如何阅读此信息吗?
谢谢!
Answers:
关于“负载”和CPU%,维基百科有详细的说明和示例,以下为部分引用
空闲计算机的负载数为0,使用或等待CPU(就绪队列或运行队列)的每个进程将负载数增加1。大多数UNIX系统仅对正在运行(在CPU上)或可运行(在等待中)的进程进行计数。 CPU)状态。但是,Linux还包括处于不间断睡眠状态(通常等待磁盘活动)的进程,如果由于I / O系统繁忙或停滞,许多进程仍在I / O中阻塞,则可能导致截然不同的结果。例如,这包括由于NFS服务器故障或介质(例如USB 1.x存储设备)变慢而导致的进程阻塞。这种情况可能会导致平均负载升高,这并不能反映出CPU使用量的实际增加(但仍然可以让用户知道需要等待多长时间)。
系统将平均负载计算为负载数量的指数衰减/加权移动平均值。平均负载的三个值是指系统运行的过去1分钟,5分钟和15分钟。
对于受CPU限制的单CPU系统,可以将平均负载视为各个时间段内系统利用率的百分比。对于具有多个CPU的系统,必须将数字除以处理器数量,以获得可比的百分比。
条可能正在忙碌移动,但从未达到100%,这表明CPU /核心已被充分利用。条形图仅是cpu利用率%(分别为27%,26.5%,24.5%,24.7%和71.7%)的可视化。所有cpu内核仍然具有“备用”功能。那时它们都在被利用。
充分利用的5核心/ cpu系统将具有5或更高的负载。
关于Java行,它们是父进程(PID = 5073)和子进程。我无法解释为什么父母会累积最多的CPU时间。那真的取决于程序的内部逻辑。但是,根据TIME +,那些子进程确实消耗了CPU时间,最后一个(PID = 5074)累积最多。