Mar*_*ark 10 linux pid process linux-kernel top-command
哪里top申请获得在Linux上的数据?我会对实时CPU负载/ pid数据感兴趣.(我在/ proc/pid手册页中阅读了所有文档,但信息不存在).
pid是一个jboss.我需要轻量级数据(轻松导出).
ado*_*yan 11
如有疑问,请使用strace(1)!
open("/proc/2/stat", O_RDONLY) = 4
open("/proc/2/statm", O_RDONLY) = 4
open("/proc/3/stat", O_RDONLY) = 4
open("/proc/3/statm", O_RDONLY) = 4
Run Code Online (Sandbox Code Playgroud)
如proc(5)中所述,在文件中/proc/(pid)/stat您有以下字段:
Run Code Online (Sandbox Code Playgroud)utime %lu在用户模式下调度此进程的时间量,以时钟周期计算(除以sysconf(_SC_CLK_TCK).这包括访客时间,guest_time(运行虚拟CPU所花费的时间,见下文),以便不知道的应用程序客人时间字段中的时间不会从计算中消失.
Run Code Online (Sandbox Code Playgroud)stime %lu在内核模式下调度此进程的时间量,以时钟周期为单位(除以sysconf(_SC_CLK_TCK)).
要获取特定进程的CPU使用率,请使用这些字段.顶层进程将聚合所有线程的CPU使用率; 对于每个线程的细分,你可以找到其他线程/proc/(pid)/task.
如果您希望在CPU时间超过某个阈值时收到通知,则可以使用clock_getcpuclockid获取其CPU时钟的句柄,然后使用timer_create或timerfd在达到指定级别时收到通知.但请注意,跨进程cputime计时器是POSIX规范中的可选功能,可能不受支持(我没有测试过).
| 归档时间: |
|
| 查看次数: |
4400 次 |
| 最近记录: |