-1

我想实时监控特定进程消耗的指标,如 CPU、内存等。

我评估了各种工具,但没有一个适合我的需求。

  1. pidstat捕获我想要的所有内容,它为每个进程提供了良好的内存使用率,但它报告了更多的 cpu 使用率(甚至大于机器消耗的总 cpu)

  2. sar更像是pidstat只是将所有数据转储到文件中。

  3. ps更像是快照工具,不给我实时统计数据

我正在寻找一种工具,它可以让我实时使用 cpu 进行进程。

4

3 回答 3

2

这些是一些用于 linux 的顶级命令行进程监控工具。

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 – 监控用户活动

如果你需要一个 GUI 界面,我建议


1. Gnome 系统监视器
2. GKrellM
3. Nagios
4. Monitorix
5. 系统负载指示器

于 2017-05-10T15:11:26.523 回答
0

我不知道有什么工具可以定期进行特定的进程监控;但是,这样的东西并不难写;以下是一些事实:

  • /proc/<pid>/stat将提供有关进程统计信息的大量信息。
  • /proc/<pid>/cmdline将提供进程命令行。
  • /proc/<pid>/environ将提供进程知道的环境变量。
  • /proc/<pid>/io用于 IO 统计信息。
  • /proc/<pid>/statm用于内存使用。
  • /proc/<pid>/status它提供statstatm人类可读的格式。
  • /proc/<pid>/sched将为您提供进程的各种 CPU 和基于负载的统计信息。

您可以阅读更多内容man proc;您可以轻松地编写一个守护程序,在某个时间间隔内提取此信息,然后将其集中存储在某个地方,例如使用graphite弹性堆栈或弹性堆栈。

于 2017-05-10T15:56:31.137 回答
0

您需要了解的有关每个级别的可用工具的所有信息:

http://www.brendangregg.com/linuxperf.html

于 2017-05-10T16:00:43.900 回答