监视Linux中进程的%CPU时间,句柄计数,专用字节数,线程计数

时间:2012-03-30 07:45:25

标签: linux process monitor

如何监控linux中进程的以下指标? 我正在使用suse linux enterprise 11 SP1 64位。

  1. %CPU时间
  2. 处理计数
  3. 私人字节
  4. 线程计数
  5. 为此目的,这些工具是否可用于linux?

3 个答案:

答案 0 :(得分:1)

也许:

ps --no-headers -p $pid -o "pcpu,nlwp"
grep Private /proc/$pid/smaps | awk '{ sum += $2 } END { print sum }'
ls /proc/$pid/fd | wc -l

ps为您提供cpu使用和线程计数的时间点 grep为您提供以千字节为单位的私有内存总和(* 1024以获取字节) 并且ls为您提供打开的文件句柄数。

ps还有其他选项可以为您提供内存信息。它不会为您提供专门的私有内存使用,但rss,size或vsz可能适合您。

答案 1 :(得分:0)

如果您需要原始数据,StackOverflow上的以下答案将回答您的问题: How to calculate the CPU usage of a process by PID in Linux from C? / proc / [pid] / stat列出了一些关于linux进程的有用信息。

如果您只想查看进程的平均CPU时间,可以使用ps(参见联机帮助页!)或类似的内容: ps -eo“%p%y%x%C%c” - 排序c

另外一个有用的工具是top ...只需在命令行中输入'top',你就可以获得有关CPU,内存等的信息......

尝试使用联机帮助页或google了解有关top和ps的更多信息

答案 2 :(得分:0)

1.对于句柄计数或文件句柄数,您可以使用lsof命令:

lsof -p (process id)

有关详细信息,请参阅此link

2.对于线程数使用:

ps uH p <PID_OF_U_PROCESS> | wc -l

此处它还会对标题进行计数,因此(output-1)就是您要查找的内容。

3.对于CPU时间,记忆等,你可以使用“顶部”。它为每个进程提供CPU使用率,内存使用率等。 我不确定你的私人字节是什么意思。

要在linus上监控这些指标,您可以使用SeaLionMunin等用于此目的的工具。如果您出于简单目的使用,SeaLion似乎是理想的选择。它很容易在多台服务器上设置并且是免费的。