目录
一、前言
如果将Linux系统当做一个车间的话,
CPU
就是"工人",当CPU使用率过高时,计算速度就会下降;内存(Memory)
就是"临时存储货物的仓库",相较于磁盘来说,内存读写速度会高很多;磁盘(Disk)
就是"车间中真正的仓库",用于数据持久化;网络(Network)
就是"车间中传送带",用于数据传输。交换区(Swap)
就是"临时仓库与仓库之间的转换区",当物理内存不足时,拿出部分磁盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足情况。
性能测试的过程中,性能监控是必不可少的,而其中
操作系统级别的监控
也是最为重要的一环。对于操作系统的监控,大致可以分为下面六个模块的监控:CPU
、Memory
、IO
、Network
、System
、Swap
。而CPU是这六个模块中最为重要的分析对象。
二、六大监控模块指标及相关监控命令
2.1 CPU
一般来说,系统监控中最重要的就是CPU的监控。而CPU监控中,监控的数据又大致可以分为下面这些部分。
- 在上面这些监控数据中,我们需要经常关注的数据是
user
,iowait
,system
,cpu队列
,softirq
。这些相关的数据,又可以通过相关的Linux命令得到。 - 监控CPU中这些数据的命令或方式有很多,例如top、vmstat、lscpu、cpuinfo、atop、mpstat、pidstat、Dstat、sar、Nmon、cpupower、irqbalance;这些命令都有自己的特点和局限性,一般来说监控CPU比较常用的是
top
和vmstat
。 - 对于命令的使用,我们应该是想到要监控什么数据,再想到用什么命令。而不是一上来就使用命令,查看所有的数据。这里以top命令为例,解释相关的数据。
2.2 IO/Disk
当一个系统调优到非常好的时候,基本上会卡在两个环节上,对计算密集型的应用来说,会卡在 CPU 上;对 I/O 密集型的应用来说,瓶颈会卡在 I/O 上
。
- 对于磁盘IO的监控,也有很多的Linux命令,例如iostat、iotop、pidstat、Dstat、Nmon、sar。比较常用的就是
iostat
命令。 - 一般来说,使用
iostat
命令查看整体数据,iostat -x
命令查看详细数据。
2.3 Swap(交换分区)
当物理内存不足会使用Swap(交换区或者虚拟内存)。其监控的数据如下:
-
对于Swap的监控,也有很多的Linux命令,例如top、vmstat、Nmon、sar、Meminfo、smen。比较常用的就是
top
命令和vmstat
命令。 -
一般来说,用top命令查看Swap的基本信息,使用vmstat查看si和搜数据。
2.4 System
- 对于System的监控,也有很多的Linux命令,例如top、vmstat、atop、vmstat、pidstat、Nmon、sar。比较常用的就是
top
命令和vmstat
命令。
2.5 Network
- 对于NetWork的监控,也有很多的Linux命令,例如netstat、ifstat、iftop、Ethtool。其中比较常用的就是
netstat
。 - 其中netstat常用的两个命令为
netstat -i
和netstat -ntlp
。
2.6 Memory
- 对于Memory的监控,也有很多的Linux命令,例如top、atop、vmstat、pidstat、Dstat、Nmon、sar、free、smem。其中比较常用的就是
top
、vmstat
、free
。
三、写在最后
关于Linux服务器的监控,应该是我们想到需要什么数据时,才从而想到使用什么命令。上面只说了需要监控的指标和使用的命令,Linux相关命令详细使用就自行网上查一下即可