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