Linux学习笔记-常用系统监控命令

发布时间:2018-05-31 17:06:57编辑:丝画阁阅读(369)

系统监控是我们每天都需要做的,可以使用很多Linux命令进行性能的监控,也可以通过zabbix等第三方工具进行。系统的性能监控不外乎保罗CPU、内存、磁盘IO和网络四个方面,下面为大家推荐几个比较实用的命令进行简单介绍,如果想要深入了解,可以man一下看看帮助哈。

内存监控

Linux系统的内存分为物理内存和虚拟内存两种,物理内存是身体的内存条,直接插在服务器上的。而虚拟内存是从物理磁盘内划分出来的一部分空间,将暂时不使用的内存页写到硬盘上以腾出更多的物理内存让有需要的进程使用。Linux上的虚拟内存也就是我们通常所说的swap分区。对于内存通常使用vmstat来进行监控(Virtual Memory Statistics),可对系统的虚拟内存,进程和cpu等进行监控,默认没有安装,因此需要提前安装好。

检查是否有安装vmstat命令:

Linux学习笔记-常用系统监控命令

vmstat命令格式就不说了,直接看怎么用就行啦,已5s为时间间隔,连续收集10次数据,直接运行命令

vmstat 5 10

Linux学习笔记-常用系统监控命令

监控呈现的数据非常明确,procs-进程,memory-内存,swap-虚拟内存,io-磁盘,system-系统,cpu。由于我们关心的内存状况,因此需要注意swpd-已经使用的虚拟内存,free-空闲的内存,buff-缓冲区的内存数,cache-高速缓存的内存数,si/so-内存与磁盘的交换数量(虚拟内存)如果虚拟内存不断增加,且存在大量的si/so,就可以证明物理内存已经不能满足系统需求,系统必须把物理内存你的页面交换到磁盘中去。此时内存存在瓶颈,需要增加内存。

CPU监控

CPU的性能主要包括三个指标,运行队列,CPU使用率和上下文切换vmstat也可以查看cpu的状况,但是只能查看总体状况,不能查看每个cpu的状况,有些时候可能出现某个CPU内存占满,另一个cpu未被使用的情况。因此需要使用mpstat来查看每个cpu的情况:

检查是否安装mpstat命令:

Linux学习笔记-常用系统监控命令

查看CPU使用情况,每隔2s中检查一次:

Linux学习笔记-常用系统监控命令

磁盘监控

可以通过iostat工具对系统的磁盘操作活动进行监控,并汇报磁盘活动统计情况,命令常用选项:

-c 只显示cPU使用情况

-d 只显示磁盘的使用情况

-k 统计结果以KB/秒为单位

-m 统计结果以MB/秒为单位

-n 显示NFS目录的统计信息

-p 显示设备所有分区的统计信息

-t 在每次的统计结果中显示时间

-x 显示扩展信息

例如,kb为单位,不显示cpu信息,每5秒刷新一次(参数也很好记忆:时间、磁盘、数值单位、刷新时间):

 iostat -t -d -k 5

Linux学习笔记-常用系统监控命令

tps表示每秒发送到设备上的IO请求数,其他的参数都很好理解了哈。

网络监控

对于网络性能监控,比较关心的是网卡的吞吐量以及网络是否稳定,是否有丢包的情况,使用sar命令进行检查。例如每5秒中采集一次,采集3次,对所有网卡进行监控和统计

 sar -n DEV 5 3

Linux学习笔记-常用系统监控命令

IFACE表示网络接口的名字

rxpck/s表示每秒钟接收的及举报

Txpck/s表示每秒钟发送的数据包

rxKB/s表示每秒钟接收的字节数

txKB/s表示每秒钟发送的字节数

rxcmp/s表示每秒钟接收的压缩数据包

txcmp/s表示每秒钟发送的压缩数据包

rxmcst/s表示每秒钟接收的多播数据包

如果要查看当前网络存在的错误,则需要使用如下命令:

 sar -n EDEV 5 3

Linux学习笔记-常用系统监控命令

输出结果中各个字段的说明:

IFACE表示网络接口的名称

Rxerr/s表示每秒钟接收的坏的数据包

txerr/s表示每秒钟发送的坏的数据包

coll/s表示每秒冲突数

rxdrop/s表示每秒钟因为缓存区满,而丢弃的已经接收的数据包

txdrop/s表示每秒钟因为缓存区满,而丢失的已经发送的数据包

txcarr/s表示发送数据包时,每秒钟载波错误数

rxfram/s表示每秒钟接收数据包的帧对齐错误数

rxfifo/s表示接收的数据包每秒FIFO过速的错误数

txfifo/s表示发送的数据包每秒FIFO过速的错误数

从我的截图可以看出,各种错误均为0,说明目前网络状况良好。

上面就是今天跟大家分享的常见的系统性能监控工具,感谢阅读!

关键字