Linux系统监控工具

  系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。性能分析应从系统CPU、内存、磁盘I/O、网络等方面入手。

(1)CPU

  top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

  • load average :三个数值分别表示 1分钟、5分钟、15分钟内系统的平均负载(任务队列的平均长度)。

  • us:用户空间CPU使用率。

  • sy:内核空间CPU使用率。

  • ni:用户空间改变过进程优先级的CPU使用率。

  • id:空闲CPU。

  • wa:等待I/O的CPU使用率。

  • hi:硬中断CPU使用率。

  • si:软中断CPU使用率。

  • st:虚拟机CPU使用率。

CPU负载和CPU使用率

  • CPU负载:一段时间内正在使用和等待CPU的平均任务数。

  • CPU使用率:程序在运行期间实时占用CPU的百分比,反映了 CPU 的繁忙程度。

I/O 密集型进程,等待 I/O 也会导致 CPU 负载升高,但 CPU 使用率不一定很高。

CPU 密集型进程,CPU 使用率高,会导致 CPU 负载升高。

(2)内存

  内存包括物理内存(RAM)和虚拟内存(swap)。当物理内存不足时,把内存中暂时不用的数据存储到磁盘,当进程需要访问这些数据时,再从磁盘读取到内存中。

  • Mem:物理内存。total = used + free
  • - buffers/cache:应用程序实际使用的内存。used - buffers - cached

  • + buffers/cache:理论上可以被使用的内存。free + buffers + cached

  • Swap:虚拟内存。

内存中的Buffer和Cache

  Buffer(缓冲区)是将内存中的数据,不立刻写入磁盘等设备,而是达到缓冲大小后再一次性写入,从而减少对磁盘的I/O操作。

  Cache(高速缓存)是CPU与内存之间的一种容量较小但速度很快的存储器。CPU的速度远高于内存,CPU直接从内存中存取数据时要等待一定时间,而Cache可以保存CPU刚用过或循环使用的一部分数据,当CPU再次使用这部分数据时,直接从Cache中存取,减少CPU等待时间。

(3)磁盘I/O

  iostat(I/O statistics,输入/输出统计),用来监视系统的CPU使用率和I/O负载。

  • tps:设备每秒传输的次数。

  • kB_read/s:每秒从设备读取的数据量。

  • kB_wrtn/s:每秒向设备写入的数据量。

  • kB_read:从设备读取的总数据量。

  • kB_wrtn:向设备写入的总数据量。

  • r/s:每秒 I/O 读次数。

  • w/s:每秒 I/O 写次数。

  • avgqu-sz:I/O 平均队列长度。

  • await:等待 I/O 的平均时间。

  • svctm:I/O 的平均服务时间。

  • %util:I/O 时间百分比。

(4)网络

  netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。可以用来显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

  统计系统中tcp连接的状态和连接数:

  netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]}'

posted @ 2020-04-23 08:41  PIPO2  阅读(188)  评论(0编辑  收藏  举报