Linux 性能监控

為{幸葍}努か 提交于 2020-01-21 03:41:09

top

命令会展示进程的实际活动。默认情况下,它会列出系统上所有cpu密集型任务,并且每5秒钟刷新一次列表。你可以对PID(数值),生存时间(最新的排最前面),时间(累计时间)以及常驻内存使用率和时间(进程启动开始占用cpu的时间)进行排序。

输出中的各列:

  • PID 进程号
  • USER 进程所有者的名字。
  • PRI 进程优先级
  • NI nice级别
  • SIZE 进程使用的内存(代码、数据和栈),kb单位
  • RSS 物理RAM使用量,kb单位
  • SHARE 和其它进程共享的内存,kb单位
  • STAT 进程状态:S=睡眠,R=运行,T=停止或跟踪,D=不可中断的睡眠,Z=僵尸。请参考前文中的”进程状态“一节。
  • %CPU CPU使用量。
  • %MEM 物理内存用量
  • TIME 进程使用的总CPU时间(从启动开始算)
  • COMMAND 进程的命令行启动命令(包括参数)

vmstat

vmstat显示关于进程,内存,页,块I/O,traps和CPU的信息。vmstat既可以展示平均值,也可以是实时数据。通过提供采样频率和采样时间就可以开启vmstat的采样模式。

输出中的各列:

  • 进程  ---->r:等待执行时间的进程数 b:在不可中断睡眠中的进程数
  • 内存      ---->swpd:已使用的虚拟内存量 free:空闲内存量 buff:作为缓冲的内存 cache:作缓存的内存
  • Swap     ----> si:从交换分区写到内存的量 so:从内存写到交换分区的大小
  • IO          ----> bi:发往块设备的数目(blocks/s) bo:从块设备接收的块数目 (blocks/s)
  • System  ----> in:每秒钟的中断次数,包括时钟 cs:每秒的上下文切换次数
  • CPU      ----> us:运行非内核代码的时间(用户时间,包括nice时间) sy:运行内核代码的时间(系统时间) id:空闲时间,早先的Linux2.5.41版本,包含了I/O等待时间 wa:等待IO的时间,早先的Linux2.5.41版本,这个值为0

uptime

uptime 命令可以用来查看服务器运行了多长时间,有多少用户登录在服务器上,以及服务器的平均负载。分别展示过去1分钟、5分钟和15分钟的系统瓶颈负载值。

平均负载最理想的值是1,意味着每个进程可以直接使用CPU,没有发生CPU周期丢失。不同系统的负载有很大差别。对单处理器工作站来说,1或2的负载值是勉强可以接受的,而在多处理器服务器上,平均负载为8或者10的时候,系统依旧运行良好。

使用uptime或许可以找出服务器或网络的问题。例如,当网络服务运行不佳时,你就可以用uptime命令查看系统负载情况。如果负载不高,问题可能出现在你的网络中,而不是服务器系统上

ps 和 pstree

在系统分析中,ps和pstree是最基础的命令,ps有三种不同的命令选项,UNIX、BSD和GNU风格。我们来看看GNU风格的ps选项。

ps命令展示所有进程列表。top命令展示了进程活动,而且ps显示的信息更加详细。ps所显示出来的进程数量取决于所使用的命令参数。简单的ps -A命令会列出所有的进程和他们各自的PID,我们可以使用PID做更多的事情。在使用pmap,renice等工具的时候,就需要用到PID。

+

在运行java应用的服务器上,使用ps -A命令可能一下子就把显示器全部占满了,很难清楚查看运行进程的完整列表。在这个情况下,pstree命令可能就会派上用场,它把运行进程以树形结构展示,把子进程合并展示(例如java线程)。pstree可以识别出原始进程。ps还有另外一个变种pgrep,也十分有用。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!