如何监控linux中进程的以下指标? 我正在使用suse linux enterprise 11 SP1 64位。
为此目的,这些工具是否可用于linux?
答案 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上监控这些指标,您可以使用SeaLion,Munin等用于此目的的工具。如果您出于简单目的使用,SeaLion似乎是理想的选择。它很容易在多台服务器上设置并且是免费的。