【w、vmstat、top、sar、nload】各个命令 使用介绍
第7周第1次课(5月7日)
课程内容:
10.1 使用w查看系统负载
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令
10.1 使用w查看系统负载
w命令查看系统负载
第一行:最前面是系统时间,中间表示登录了多少个用户,load average查看系统负载。
load average:系统负载分每1分钟、5分钟、15分钟,时间段内系统的负载值,这个负载和CPU有关,单位时间段内使用CPU的活动进程有多少个,平常只需要看1分钟内的就可以了。
第二行:user表示登录用户名,TTY表示登录终端是那种类型,如果是远程终端登录就是pts/0,如果是VMware虚拟机登录就是tty1(最多是tty6表示登录了6个终端),from表示登录的IP地址,login表示登录时间。
[root@jimmylinux-002 ~]# date 可以查看当前系统日期和时间
[root@jimmylinux-002 ~]# cat /proc/cpuinfo
查看系统CPU信息,主要查看processor数字,最大是7,如果数字是0,表示有1颗CPU,如果是1,表示有2颗CPU。(这里指的都是逻辑CPU数量)
10.2 vmstat命令
如果CPU负载值大于当前CPU个数时,应该去查看下具体是那些进程和任务在使用CPU资源。
[root@jimmylinux-002 ~]# vmstat 可以查看CPU、内存、虚拟磁盘交换分区、io和system进程
[root@jimmylinux-002 ~]# vmstat 1 5 数字1表示每一秒钟动态显示1次,总共显示5次后自动结束。
只需要关注r、b、swpd、si、so、bi、bo、us、wa
r表示有多少个进程处于run状态
b表示cpu以外的进程block,例如硬盘、网卡。
swpd表示系统内存不够用的时候把交换分区里面的内存私放一点均衡使用
si表示有多少个数据,单位为KB,进入到内存中。
so表示有多少个数据从内存中出来
bi表示从磁盘里读的数量
bo表示从磁盘里写的数量
us表示用户级别的,例如操作系统中跑的其他服务(如跑一个网站或mysql)不会超过100。
us+sy+id=100%
wa表示wait等待CPU的进程
10.3 top命令
top查看进程使用资源情况,可以具体查看那个进程占用资源很高。
top默认是每3秒钟动态显示1次
CPU使用百分比
%Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
一般需要关注us使用情况,如果us占用到60%或以上,就需要特别注意了,看看具体什么进程占用了us百分比。
内存使用情况
KiB Mem : 1867048 total, 1560572 free, 137192 used, 169284 buff/cache
交换分区使用情况
KiB Swap: 8388604 total, 8388604 free, 0 used. 1547984 avail Mem
默认以CPU排序,以CPU占用百分比多的排前面。
%MEM 表示使用内存占用百分比,按大写字母M可以以内存排序。
%CPU 表示使用CPU占用百分比,按大写字母P可以以CPU排序。
按数字1可以列出所有CPU使用百分比
%Cpu0 : 0.0 us, 1.4 sy, 0.0 ni, 98.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
按字母q可以退出top界面
[root@jimmylinux-002 ~]# top -c 可以查看到具体的进程命令,包括具体路径。
[root@jimmylinux-002 ~]# top -bn1 可以静态显示一次性的把所有进程显示出来,这种用法适合写脚本时候使用。
PID 表示进程编号,可以使用kill+进程编号可以杀死指定的进程。例如: kill 11杀死编号为11的进程
10.4 sar命令
sar可以全面监控系统状态,被称之为Linux的瑞士军刀,功能非常强大丰富,默认没有安装,需要使用yum安装上。
[root@jimmylinux-002 ~]# yum install -y sysstat
sar如果不加任何参数直接运行会报错,因为默认会去调用系统保留的历史文件,每10分钟会把系统状态过滤一遍,然后保存到此路径/var/log/sa。
[root@jimmylinux-002 ~]# sar -n DEV 1 10 查看网卡流量,每隔1秒钟显示1次显示10次。
输出信息有2个网卡,一个是lo,一个是ens33。
第一列是时间,第二列是网卡名字,第三列是每秒接收数据包,第四列是每秒发送出去的数据包,(单位是个)第五列是接收的数据量,第六列是发送出去的数据量,(单位是KB)后三列基本上不用关注。
数据包几千属于正常,如果是上万或几十万的数据包就不正常了。
[root@jimmylinux-002 ~]# sar -n DEV -f /var/log/sa/sa04
查看网卡流量信息并通过-f指定到文件,sa04是指以日期当天的数字进行命名,这个路径/var/log/sa/下的历史数据最多保存一个月。
[root@jimmylinux-002 ~]# sar -q 1 10 查看系统负载
[root@jimmylinux-002 ~]# sar -b 1 5 查看磁盘的读和写
10.5 nload命令
[root@jimmylinux-002 ~]# yum install -y nload 使用yum安装
[root@jimmylinux-002 ~]# nload 动态显示网卡的实时速度的页面
[root@jimmylinux-002 ~]# ls /var/log/sa/
/var/log/sa/ 这个目录下有一个sa04,实际上还有一个sar04,sar04需要到明天才会生成,2者的区别sa04是二进制文件不能够直接cat,sar04可以直接cat查看。