Linux系统监控工具详解

系统监控

proc文件系统

proc文件系统是一种无存储的文件系统,当读其中的文件时,其内容动态生成,当写文件时,文件所关联的写函数被调用。每个proc文件都关联着字节特定的读写函数,因而它提供了另外的一种和内核通信的机制:内核部件可以通过该文件系统向用户空间提供接口来提供查询信息、修改软件行为,因而它是一种比较重要的特殊文件系统

由于proc文件系统以文件的形式向用户空间提供了访问接口,这些接口可以用于在运行时获取相关部件的信息或者修改部件的行为,因而它是非常方便的一个接口。内核中大量使用了该文件系统。proc文件系统就是一个文件系统,它可以挂载在目录树的任意位置,不过通常挂载在/proc下,它大致包含了如下信息:在这里插入图片描述
主机上的各个进程都是以目录的形态存在于/proc当中

和整个Linux系统相关的参数如下:
在这里插入图片描述


常见系统监控命令

  • uptime
    能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载在这里插入图片描述
    系统平均负载是指在特定时间间隔内运行队列中的平均进程数。如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了

  • free
    可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区在这里插入图片描述

  • vmstat
    是最常见的Linux/Unix监控工具,含义为显示虚拟内存状态(“VirtualMemory Statistics”),但也可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况
    在这里插入图片描述
    可用参数:
    在这里插入图片描述

各字段说明:
procs
r:表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数,说明CPU不足,需要增加CPU
b:表示在等待资源的进程数,比如正在等待I/O或者内存交换等

memory
swpd:表示切换到内存交换区的内存大小,即虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器

free:表示当前空闲的物理内存

buff:表示buffers cached内存大小,也就是缓冲大小,一般对块设备的读写才需要缓冲

Cache:表示page cached的内存大小,也就是缓存大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果cache值非常大说明缓存文件比较多,如果此时io中的bi比较小,说明文件系统效率比较好

swap
si:表示从磁盘调入内存,也就是内存进入内存交换区的内存大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉

so:表示由内存进入磁盘,也就是由内存交换区进入内存的内存大小,一般情况下si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不足,需要增加系统内存

io
bi:表示从块设备每秒读取的块数量

bo:表示每秒写到块设备的块数量

system
in: 表示每秒的中断数,包括时钟

cs:表示每秒产生的上下文切换次数,这个值要越小越好

CPU
us:表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,如果长期大于50%,则需要考虑优化程序或者算法

sy:表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%,如果大于80%,说明可能存在CPU瓶颈

id:表示CPU处在空间状态的时间百分比

wa:表示IP等待所占用的CPU时间百分比,wa值越高,说明I/O等待越严重,如果超过20%,说明I/O等待严重,引起I/O等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者监控器的贷款瓶颈造成的

  • mpstat
    实时系统监控工具,其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中,在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息,mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而类似工具vmstat只能查看系统整体cpu情况
    (需要安装:sysstat)
    在这里插入图片描述
    可用参数:
    在这里插入图片描述
    在这里插入图片描述

  • iostat
    iostat命令被用于监视系统输入输出设备和CPU的使用情况,它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况,同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析,能查看到系统IO状态信息,从而确定IO性能是否存在瓶颈
    在这里插入图片描述
    可用参数:
    在这里插入图片描述

  • sar
    sar是目前 Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等

可用参数:在这里插入图片描述

  • iotop
    iotop命令是一个用来监视磁盘I/O使用状况的top类工具,iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息,Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,如果你想知道每个进程是如何使用IO的就比较麻烦,使用iotop命令可以很方便的查看
    在这里插入图片描述
    可用参数:
    在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3369_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值