Linux系统实时监控

命令

  • top

  Top命令用于实时显示process的动态。参数如下:

  d:设置显示的更新速度

  q:无延迟的显示速度

  c:切换显示模式,一共有两种显示模式,一是只显示执行档,另一种是显示完成的路径和名称

  S:累积模式,会将已完成或者消失的子进程的cpu time累积起来

  s:安全模式,将交谈式的命令取消,避免潜在的危险

  i:不显示任何闲置或者无用的进程

  n:更新的次数,完成后会推出top

  b:批次档模式,搭配“n”使用,可以用来将top结果输出到档案内

  p:显示指定的进程信息

  

  • htop

  下载源码包:https://hisham.hm/htop/releases/

  htop是Linux系统中一个互动的进程查看器(需要ncurese),和传统top命令相比,htop可交互式操作,支持颜色主题,可横向或者纵向滚动进程列表,还可以支持鼠标操作

  常用参数

  c:只使用一种颜色         d:设置刷新时间间隔,单位秒

  h:显示帮助信息          u:显示某个指定用户的进程

  p:显示某个指定PIDs的进程     s:按照某列进行排序

  v:显示版本信息

  交互式命令

  u:显示某个指定用户的进程    M:按照内存使用排序

  P:按照CPU使用排序       T:按照TIME+使用排序

  F:跟踪进程           K:显示/隐藏内核进程

  H:显示/隐藏用户进程

  下图显示内容为:

  PID:进程号              USER:进程所属用户

  PRI:优先级               NI:优先级别值,默认0,可调整

  VIRT:占用的虚拟内存         RES:占用的物理内存

  SHR:占用的共享内存         S:进程状态(R:运行中;S:休眠可唤醒;Z:僵死)

  CPU%:CPU使用率          MEM%:进程占用的物理内存和总内存的百分比

  TIME+:进程启动后占用的总的CPU时间 Command:启动进程的命令 

  F1:显示帮助信息           F2:HTOP设置

  F3:搜索进程             F4:过滤器,关键字索引,不区分大小写,可以通过ESC清除

  F5:显示树形结构           F6:以指定目标条件显示

  F7:调高优先级            F8:调低优先级

  F9:杀进程              F10:退出

  

  • atop

  下载源码包:https://www.atoptool.nl/downloadatop.php

  atop同样属于是交互式监视器,用于查看Linux系统负载情况,它显示占用系统级别上最关键的硬件资源,即CPU、内存、硬盘、网络。

对于系统级别的资源消耗,会使用不同颜色来进行标记,临界占用百分比意味着当前负载可能会导致明显的负面性能。临界百分比取决于不同的资源类型,比如CPU90%)、磁盘(70%)、网络(90%)、内存(90%)、SWAP80%);当资源占用超过临界值时会被显示为红色,当资源占用接近/等于临界值时会被显示为青色。这些默认值可以在配置文件中进行修改,也可以使用“x”禁止着色

  常用交互式命令

  g:显示通用输出(默认)                 m:显示内存相关的输出

  d:显示磁盘相关的输出                  n:显示网络相关的输出

  c:显示进程的命令行                   u:显示每个用户的累计进程活动

  p:显示每个程序累计的进程活动              C:按照CPU消耗顺序排序(最后一列显示为CPU

  M:按照内存消耗顺序排序(最后一列显示为MEM)      D:按照磁盘访问顺序排序(最后一列显示为DSK

  N:按照接受/传输数据包的顺序排序(最后一列显示为NET  A:按照最繁忙的系统资源排序(最后一列显示为ACPU

  其他交互式命令

  x:禁止以颜色突出显示关键资源

  z:冻结当前屏幕显示内容

  i:修改刷新时间间隔(默认10秒),间隔为0时关闭计时器,停止刷新

  t:关闭计时器时,手动刷新进程列表

  监控服务

  处理查看当前系统状态以外,atop支持以服务方式运行在后台并记录系统状态

  systemctl start atop

  systemctl stop atop

  以服务方式运行时,默认数据保存在/var/log/atop目录,每间隔10分钟采集一次,保留最近28天的数据。(配置可在/etc/atop/atop.daili文件中修改)

  atop -r {filename}

  读取数据时,t”向前翻页,“T”向后翻页,“b”跳转至指定时间

  

 

  • iotop  

  iotop是一款开源、免费的用来监控磁盘I/O使用状况的类似top命令的工具,iotop可以监控进程的I/O信息。它是Python语言编写的,与iostat工具比较,iostat是系统级别的IO监控,而iotop是进程级别IO监控。

  安装iotop的前提条件

  1、内核版本高于2.6.20(包含2.6.20)

  2、python2.7或者更高版本

  常用参数

  version:显示软件版本             h:显示帮助信息

  o:显示正在产生io的进程或者线程        b:非交互模式时,记录日志

  n:非交互模式时,设置记录次数,默认无限    d:刷新间隔时间,支持非整数

  p:显示指定PID进程               P:显示进程,不显示线程

  u:显示指定用户进程              a:显示进程io总数

  k:使用kb单位                 t:非交互模式时,设置运行时间

  q:只在第一次检测时显示列名,最多可用三次(-q:只在最初显示1次头部,-qq:不显示头部,-qqq:总结不显示)

  交互式命令

  r:反向排序                  o:同上述参数“o”

  p:显示实时io                 a:同上述参数“a”

  i:改变线程的优先级              q:退出

  

  • iostat

  iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析

  常用参数

  d:显示磁盘信息

  rrqm/s:每秒进行 merge 的读操作数目.即 delta(rmerge)/s

  wrqm/s:每秒进行 merge 的写操作数目.即 delta(wmerge)/s

  r/s: 每秒完成的读次数

  w/s: 每秒完成的写次数

  rkB/s: 每秒读数据量(kB为单位)

  wkB/s: 每秒写数据量(kB为单位)

  avgrq-sz:平均每次IO操作的数据量(扇区数为单位)

  avgqu-sz: 平均等待处理的IO请求队列长度

  await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)

  svctm: 平均每次IO请求的处理时间(毫秒为单位)

  %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率,即一秒中有百分之多少的时间用于 I/O

  如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷

    idle小于70% IO压力就较大了,一般读取速度有较多的wait。

  c:显示CPU信息

  %user:CPU处在用户模式下的时间百分比。

  %nice:CPU处在带NICE值的用户模式下的时间百分比。

  %system:CPU处在系统模式下的时间百分比。

  %iowait:CPU等待输入输出完成时间的百分比。

  %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

  %idle:CPU空闲时间百分比

  如果%iowait的值过高,表示硬盘存在I/O瓶颈

  如果%idle值高,表示CPU较空闲

  如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。

  如果%idle值持续低于cpu核数,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU

  m:以M(兆)为单位显示

  t:显示tty和cpu信息

  x:显示详细信息

  

  • iptstate

  iptstate命令和top指令风格类似,显示Linux内核中iptables的工作状态

  常见参数

  b:指定输出信息的排序规则    d:不动态的改变窗口大小

  f:过滤本地回送消息       l:将IP地址解析为域名

  L:隐藏DNS查询相关状态     r:指定刷新频率

  R:反序排列           s:单次运行模式

  t:显示汇总信息

  

 

  • mtr

  下载源码包:https://www.bitwizard.nl/mtr/files/

  mtr是一种网络诊断工具,结合“跟踪路由”和“ping”的功能在单个网络诊断工具中。当mtr启动时,即时监控主机之间的网络链接,确认每个网络节点的地址后,向每个请求发送“ICMP ECHO”请求,用来确定每个链接的质量,同时打印有关每台设备的统计信息

  hostname:主机ip和域名        loss:节点丢包率

  last:最近一次延迟          avg:延迟平均值

  best:延迟最小值           worst:延迟最大值

  stdev:标准偏差,值越大节点越不稳

  snt:已发送数据包数,默认为10,可以通过参数“-c”调整

  

  • sar

  sar命令 Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

  常见参数

  -A:显示所有的报告信息     -b:显示I/O速率

  -B:显示换页状态        -c:显示进程创建活动

  -d:显示每个块设备的状态    -e:设置显示报告的结束时间

  -f:从指定文件提取报告      -i:设状态信息刷新的间隔时间

  -P:报告每个CPU的状态      -R:显示内存状态

  -u:显示CPU利用率        -v:显示索引节点,文件和其他内核表的状态

  -w:显示交换分区状态      -x:显示给定进程的状态。

  -n:显示网络设备状态

  sar [ options ] [ <interval> [ <count> ] ]

  options:上述参数

  interval:刷新时间

  count:刷新次数

  

 

  • watch

  watch命令 以周期性的方式执行给定的指令,指令输出以全屏方式显示。watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你实时监测一个命令的运行结果,省得一遍遍的手动查询

  常用参数

  -n:默认2秒刷新一次,可以使用“-n”指定刷新频率

  -d:可以将监测结果中变化的部分高亮显示

  -t:关闭默认在顶端显示的时间显示

  -h:显示help信息

  

 

工具

  • nmon

   

  • Gnome系统监视器

  

 

  

 

 

笔记整理过程中感谢以下链接给予参考,如有侵犯产权,请及时联系删除,谢谢!

https://www.cnblogs.com/zangfans/p/8595000.html

https://linux.die.net/man/1/atop

https://www.cnblogs.com/Finley/p/12327804.html

https://www.cnblogs.com/kerrycode/p/11344506.html

https://www.cnblogs.com/ftl1012/p/iostat.html

posted @ 2023-02-27 17:30  葫芦小金刚·  阅读(286)  评论(0编辑  收藏  举报