Linux工具实时捕获流程级指标?

时间:2017-05-10 14:52:27

标签: linux process-monitoring

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

我已经评估了各种工具,但没有找到符合我需求的工具。

  1. sar捕获我想要的所有内容,它为每个进程提供了良好的内存使用量,但它报告了更多的CPU使用率(甚至超过了计算机消耗的总CPU)

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

  3. {{1}}更像是快照工具,不会给我实时统计信息

  4. 我正在寻找一种可以实时为我提供cpu使用的工具。

3 个答案:

答案 0 :(得分:1)

这些是Linux的一些顶级命令行进程监视工具。

<强> 1。热门 - 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。系统负载指示器

答案 1 :(得分: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或Elastic堆栈。

答案 2 :(得分:0)

您需要了解的每个级别的可用工具:

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