我想实时监控特定进程消耗的指标,如 CPU、内存等。
我评估了各种工具,但没有一个适合我的需求。
pidstat
捕获我想要的所有内容,它为每个进程提供了良好的内存使用率,但它报告了更多的 cpu 使用率(甚至大于机器消耗的总 cpu)sar
更像是pidstat
只是将所有数据转储到文件中。ps
更像是快照工具,不给我实时统计数据
我正在寻找一种工具,它可以让我实时使用 cpu 进行进程。
我想实时监控特定进程消耗的指标,如 CPU、内存等。
我评估了各种工具,但没有一个适合我的需求。
pidstat
捕获我想要的所有内容,它为每个进程提供了良好的内存使用率,但它报告了更多的 cpu 使用率(甚至大于机器消耗的总 cpu)
sar
更像是pidstat
只是将所有数据转储到文件中。
ps
更像是快照工具,不给我实时统计数据
我正在寻找一种工具,它可以让我实时使用 cpu 进行进程。
1. Top – Linux 进程监控
2. VmStat – 虚拟内存统计
3. Lsof – 列出打开的文件
4. Tcpdump – 网络数据包分析器
5. Netstat – 网络统计
6. Htop – Linux 进程监控
7. Iotop – 监控 Linux 磁盘 I/ O
8. Iostat – 输入/输出统计
9. IPTraf – 实时 IP LAN 监控
10. Psacct 或 Acct – 监控用户活动
1. Gnome 系统监视器
2. GKrellM
3. Nagios
4. Monitorix
5. 系统负载指示器
我不知道有什么工具可以定期进行特定的进程监控;但是,这样的东西并不难写;以下是一些事实:
/proc/<pid>/stat
将提供有关进程统计信息的大量信息。/proc/<pid>/cmdline
将提供进程命令行。/proc/<pid>/environ
将提供进程知道的环境变量。/proc/<pid>/io
用于 IO 统计信息。/proc/<pid>/statm
用于内存使用。/proc/<pid>/status
它提供stat
了statm
人类可读的格式。/proc/<pid>/sched
将为您提供进程的各种 CPU 和基于负载的统计信息。您可以阅读更多内容man proc
;您可以轻松地编写一个守护程序,在某个时间间隔内提取此信息,然后将其集中存储在某个地方,例如使用graphite
弹性堆栈或弹性堆栈。
您需要了解的有关每个级别的可用工具的所有信息: