获取包括所有线程或子进程在内的进程的总 %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