iostat 命令、

  • iostat命令是监控磁盘的命令,默认是没有安装的,需要先安装
[root@localhost ~]# yum install -y sysstat
[root@localhost ~]# iostat
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	02/28/2019 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.75    0.00    1.92    0.72    0.00   96.60

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               8.23       317.90        16.60     301670      15755
dm-0              6.08       283.81        14.42     269326      13687
dm-1              0.09         2.59         0.00       2460          0
  • iostat 1 1秒刷新一次,会显示CPU使用情况
  • iostat -d 1 1秒钟刷新一次,只显示跟硬盘有关的信息。
  • iostat -d 1 5 1秒刷新一次,显示5次。
  • iostat -dx 1 5 1秒刷新一次,显示5次,显示的内容要比上一条命令更全一些,会有磁盘的使用率等信息。
[root@localhost ~]# iostat 1 2
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	02/28/2019 	_x86_64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.20    0.00    0.55    0.19    0.00   99.06

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.49        82.95         8.67     307486      32146
dm-0              1.99        74.22         8.11     275142      30058
dm-1              0.02         0.66         0.00       2460          0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.25    0.00    0.00   99.75

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
dm-0              0.00         0.00         0.00          0          0
dm-1              0.00         0.00         0.00          0          0

[root@localhost ~]# iostat -d 1 2
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	02/28/2019 	_x86_64_	(4 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               2.49        82.79         8.66     307486      32162
dm-0              1.99        74.08         8.10     275142      30074
dm-1              0.02         0.66         0.00       2460          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
dm-0              0.00         0.00         0.00          0          0
dm-1              0.00         0.00         0.00          0          0

[root@localhost ~]# iostat -dx 1 2
Linux 3.10.0-957.el7.x86_64 (localhost.localdomain) 	02/28/2019 	_x86_64_	(4 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.09    2.03    0.45    82.67     8.66    73.47     0.05   21.64   12.42   62.86   4.51   1.12

iotop命令

  • iotop也是监控磁盘的命令,与top命令有点像,需要先安装,
[root@localhost ~]# yum install iotop -y
  • 该命令显示的内容是动态显示的,按IO使用率排序。

vmstat命令

vmstat 监控系统状态

[root@localhost ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 3565444    692  99364    0    0    22     2   23   27  0  0 99  0  0

使用w命令查看的是系统整体上的负载,无法判断具体是哪些硬件负载压力过大,这就用到了vmstat命令,vmstat显示的内容一共分为6部分,

  • procs 显示进程的相关信息
  • r(run):表示运行或等待CPU时间片的进程数。该数值如果长期大于CPU核数就意味着CPU不够用了。
  • b(block):表示等待资源的进程数,这里的资源指的是I/O、内存等。比如说有个数据CPU很快处理完了,但是硬盘在频繁的读写当中,该数据等待写入硬盘时,这个进程就是b的状态。该数据长时间大于1就需要找找问题了。
  • memory 显示内存的相关信息
  • swpd:表示切换到交换分区中的内存数量,单位为KB。
  • free:表示当前空闲的内存大小。单位KB
  • fuff:表示(即将写入磁盘的)缓冲大小,单位KB
  • cache:表示(从磁盘中读取的)缓存大小,单位KB
  • swap 显示内存的交换情况
  • si:表示由交换分区写内存的数据量,单位KB
  • so:表示由内存写入交换分区的数据量,
  • io显示磁盘的使用情况
  • bi:表示从块设备读取数据的量(读磁盘)
  • bo:表示从块设备写入数据的量(写磁盘)
  • system显示采集间隔内发生的中断次数
  • in:表示在某一时间间隔内观测到的每秒设备的中断次数
  • cs:表示每秒产生的上下文切换次数
  • cpu显示CPU的使用状态
  • us:显示用户下所花费CPU的时间百分比
  • sy:显示系统花费CPU的时间百分比
  • id:表示CPU处于空闲状态的时间百分比
  • wa:表示I/O等待所占用的CPU时间百分比
  • st:表示被偷走的CPU所占的百分比(一般为0,不用关注)
  • vmstat 2 10意思是每两秒输出一次状态,输出10次。

监控网卡流量

  • netstat 列出端口信息
  • netstat -lnp 列出系统监听端口
  • netstat -an 查看系统的网络连接状况
  • netstat -lntp 列出监听端口,只看tcp的,不包括socket
  • ss -an 跟netstat -an 作用一样
[root@localhost ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2342/master         
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1340/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2342/master         
tcp6       0      0 :::22                   :::*                    LISTEN      1340/sshd