获取包括所有线程或子进程在内的进程的总 %cpu、%mem?

获取包括所有线程或子进程在内的进程的总 %cpu、%mem?

获取包括所有线程或子进程在内的进程的总 %cpu、%mem?

例如,如果您在 rsync 中执行以下操作,则只会获取父进程的 %cpu、%mem。其中 9215 是活动 rsync 的 pid。

ps -p 9215 -o %cpu,%mem

如何获取整个 rsync 进程(包括其线程或子进程)的全部、总 %cpu、%mem?

答案1

在 Linux 上,您可以将命令隔离到 cgroup 并获取其总资源使用情况,即使它执行其他进程。

对于 systemd 系统上的一次性命令,创建一个临时单元:systemd-run --unit=run rsync-script.sh 其中“run”是一些描述性名称,“rsync-script.sh”是执行该操作的脚本。请参阅 cgroup 中的资源systemd-cgtop。实际上获取数字需要默认启用资源核算,请参阅man systemd.resource-control


线程是简单的例子,不需要复杂的核算。进程报告所有线程的 CPU 和私有内存总量。查看多线程任务组pidstat -t

相关内容