如何在UNIX服务器中监视特定应用程序的cpu利用率
最高指挥部的审判如何在UNIX服务器中监视特定应用程序的cpu利用率,unix,Unix,最高指挥部的审判 top | grep 但是cpu的百分比会有不同的变化。而且,如果我将这个值与每五分钟刷新一次的监控工具进行比较,它就不同了 试用 ps -o %cpu -p <pid> ps-o%cpu-p …但仍然没有帮助这已在中得到回答: 准备 要计算特定进程的CPU使用率,您需要 以下: 系统的正常运行时间(秒) #14utime-在用户代码中花费的CPU时间,以时钟滴答为单位 #15stime-在内核代码中花费的CPU时间,以时钟周期为单位 #16cutim
top | grep
但是cpu的百分比会有不同的变化。而且,如果我将这个值与每五分钟刷新一次的监控工具进行比较,它就不同了
试用
ps -o %cpu -p <pid>
ps-o%cpu-p
…但仍然没有帮助这已在中得到回答: 准备 要计算特定进程的CPU使用率,您需要 以下:
- 系统的正常运行时间(秒)
#14
-在用户代码中花费的CPU时间,以时钟滴答为单位utime
#15
-在内核代码中花费的CPU时间,以时钟周期为单位stime
#16
-等待孩子花在用户代码中的CPU时间(以时钟节拍为单位)cutime
#17
-等待孩子花在内核代码上的CPU时间(以时钟周期为单位)cstime
#22
-进程开始的时间,以时钟滴答为单位starttime
- 在大多数情况下, 可用于返回时钟滴答数
- C函数调用也可用于返回赫兹值
计算 首先,我们确定流程花费的总时间:
total_time = utime + stime
We also have to decide whether we want to include the time from children processes. If we do, then we add those values to
总时间
:
total_time = total_time + cutime + cstime
接下来,我们将以秒为单位获得自该进程以来经过的总时间
开始:
seconds = uptime - (starttime / Hertz)
最后,我们计算CPU使用率百分比:
cpu_usage = 100 * ((total_time / Hertz) / seconds)
另见
ps-o%cpu显示进程生命周期内的cpu使用情况。您的监控工具可能只显示5分钟内的平均CPU使用率-您应该了解特定监控工具的工作原理。您可以将top-d降低到平均速度,例如每10秒运行top-d 10,或每5分钟执行
top-d 300
。由于最后10秒或最后5分钟的CPU使用率没有存储在任何位置,因此您必须等待10秒或5分钟才能获得正确的初始值。@kanchan:我很高兴它对您有效,将答案标记为正确将帮助其他可能有相同问题的人。