uptime命令怎么能显示cpu时间大于100%?

时间:2013-11-26 11:22:44

标签: linux profiling

在具有内核2.6.11和单核处理器的Linux系统上运行具有无限循环(无睡眠,没有系统调用循环)的应用程序会导致98-99%的cputime消耗。这很正常。  我有另一个单线程服务器应用程序,通常平均睡眠率为98%,最大值为cputime的20%。一旦与网络客户端连接,睡眠平均值下降到88%(没什么奇怪的)但是cputime(平均1分钟)不断上升但不会立即上升到100%......我也看到了160%!!净流量非常慢(每0.5秒一个小数据包)。通常15分钟的正常运行时间命令显示大约115%。

我也运行了gprof,但我没有发现它有用......我有类似的情况:

IDLE SCENARIO
%time name
59.09 Run()
25.00 updateInfos()
 5.68 updateMcuInfo()
 2.27 getLastEvent()
 ....

CONNECTED SCENARIO
%time name
38.42 updateInfo()
34.49 Run()
10.57 updateCUinfo()
 4.36 updateMcuInfo()
 3.90 ...
 1.77 ...
 ....

所列出的所有功能都不直接与客户沟通有关

你怎么解释这种行为?这是一个已知的bug吗?可能是系统调用后内核空间消耗的额外时间,并导致像

这样的微积分
%=100*(apptime+kerneltime)/(total apps time)?

0 个答案:

没有答案