【问题标题】:Calculate CPU usage from top command in linux从linux中的top命令计算CPU使用率
【发布时间】:2020-05-04 10:39:40
【问题描述】:

我必须在我的应用程序上显示 CPU 使用率并实时更新它。我正在使用 top 命令来获取 CPU 使用率,即

我添加两个突出显示的值来获取 CPU 使用率。我用来添加突出显示的值并获取最终 CPU 使用率的命令是:

top -b -n 2 | grep Cpu | awk '{printf "CPU Load:%.2f\n", $(NF-13) + $(NF-15)}' | sed -n '2 p'

问题是,此命令在某个时间后停止工作,即 3-4 分钟,我确实获得了 CPU 使用率,但在该命令没有处理之后,我没有获得更新的值。我正在循环运行此命令。

任何帮助将不胜感激。

【问题讨论】:

  • 您是否考虑过使用 /proc 文件系统。您可以在那里找到所有top 信息等等。例如在 /proc/PID/sched 文件中。

标签: linux command cpu cpu-usage


【解决方案1】:

我使用类似的脚本已经有一段时间了:

top -bn2 | grep Cpu | tail -n1 | sed -e 's/.*, *\([0-9.]*\)%* id.*/\1/' | awk '{print 100-$1}'

该脚本从顶部输出中获取“空闲”时间并将其从 100% 中扣除以获取 cpu 使用率。

您调用脚本的循环周期不应快于脚本完成所需的时间。否则,您可能会得到多个 'top' 并行运行。这主要取决于您系统上的“顶级”默认延迟,在我的系统上,它大约是 5 秒,但您可以使用 -d 开关进行设置。

【讨论】:

  • 感谢工作:),但现在我有另一个问题,我的应用程序没有实时更新,即 top 命令已刷新 5-6 次,而我的应用程序只刷新了一次。如何使用 top 命令同步我的应用程序使用情况? @mnikolic
猜你喜欢
  • 2010-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-20
  • 2020-02-15
  • 1970-01-01
  • 2012-06-13
  • 2011-07-27
相关资源
最近更新 更多