linux学习第二十七篇:使用w查看系统负载,vmstat,top,sar,nload命令

时间:2022-04-26
本文章向大家介绍linux学习第二十七篇:使用w查看系统负载,vmstat,top,sar,nload命令,主要内容包括使用w查看系统负载、vmstat 监控系统状态、top命令、sar命令、nload、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

使用w查看系统负载

w/uptime的命令结果是一样的

1. 第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。 2. 最应该关注的应该是第一行中的 load average也就是平均负载的三个值。 第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值。 3. 这个值的意义是,单位时间段内CPU活动进程数。当然这个值越大就说明你的服务器压力越大。一般情况下这个值只要不超过服务器的cpu数量就没有关系,这里的cpu的数量是指逻辑cpu不是物理cpu。 4. 查看系统有多少cpu:cat /proc/cpuinfo

[root@xie-02 ~]# cat /proc/cpuinfo
processor   : 0     //如果是0,那就是1颗cpu,如果是1那就是2颗,依次类推,这说的是逻辑cpu。也就是说上述的平均负载为1是最理想的。
vendor_id   : GenuineIntel
cpu family  : 6
model       : 60
model name  : Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz
stepping    : 3
microcode   : 0x17
cpu MHz     : 2393.468
cache size  : 3072 KB
physical id : 0
siblings    : 1
core id     : 0
cpu cores   : 1
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt xsave avx f16c rdrand hypervisor lahf_lm arat epb pln pts dtherm fsgsbase smep xsaveopt
bogomips    : 4788.98
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

vmstat 监控系统状态

vmstat命令可以查看包括cpu,内存,虚拟磁盘,交换分区,系统进程等等相关的信息

用法 vmstat 1:数字1表示每一秒钟显示一次,ctrl+c可以终止。 用法 vmstat 1 5:表示每一秒钟显示一次,显示五次后结束。 有上图可知 vmstat显示的分为6部分:procs, memory, swap, io, system, cpu. 需要关注的:r,b,swpd,si,so,bi,bo,us,wa

r:run,表示有多少个进程处于运行和等待的状态,不管是在排队还是正在使用cpu的,只要是在排队那就属于r的状态。

b:block,进程被cpu以外的资源,比如被硬盘,网络阻断,堵住。处于等待的状态。

swpd:当内存不够的时候,系统会把内存的一部分东西临时放到swap空间里,这个swpd数值就会变化。如果这个数值持续变化,那说明交换分区swap和内存在频繁交换数据,说明内存不够了。

si:swap 内存交换情况,有多少kb的数据从交换区进入到内存中。swpd有变化si也就会有变化(以内存为参照物,i就是in,进入到内存)。

so:swap 内存交换情况,有多少kb的数据从内存写入到交换区。swpd有变化so也就会有变化(o是out,从内存里出来)。

bi:与磁盘有关系,从磁盘里出来进入到内存,也就是读的数据量有多少(读磁盘)。

bo:与磁盘有关系,从内存进入到磁盘,也就是写的数据量有多少(写磁盘。如果bi,bo数值很大的话说明磁盘在频繁读写)。

us:表示用户级别,用户占用cpu资源的百分比。

sy:系统本身的进程,服务占用cpu的资源百分比。

id:idle空闲的意思,us+sy+id=100。

wa:wait等待,等待cpu的百分比,有多少个进程在等待cpu,如果很大说明cpu不够用。

top命令

top 显示进程所占系统资源,3秒钟显示一次动态信息。 q:退出top。 top -c :可以查看具体的命令。 top -bn1:静态的一次性显示所有信息。适合写shell脚本的时候用。

第一行跟w命令查看到的信息是一样的。 第二行分别是,有多少个任务(total),有多少个运行的任务(running),有多少个休眠状态的任务(sleeping),有多少个停止的任务(stopped),有多少个僵尸进程(zombie/主进程被意外终止,留下子进程在这留着没人管,只能自生自灭)。 第三行是cpu的百分比,st是被偷走的cpu百分比,需要多关注的是us,如果长时间在60%以上,对机器不好。 第四行是物理内存,通常情况下比较关注这行,内容分别是:内存有多大,还有多少剩余,使用了多少,还有多少缓冲缓存。 第五行是交换分区。

默认是按cpu从高到低排序,谁使用cpu最多就排在最前。在 top 状态下,按 “M”, 可以按照内存使用大小排序。“P”就是按cpu排序。按数字“1”会在第三行显示指定cpu的使用状态

%MEM:内存。

RES:物理内存大小,单位是kb。

sar命令

sar命令非常全面分析系统状态,它可以监控系统所有资源状态,比如平均负载、网卡流量、磁盘状态、内存使用等等。它不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。被称作linux系统里的“瑞士军刀”。

命令安装:yum install -y sysstat

/var/log/sa:这是sar工具生成的历史文件所在的目录。sar的特性:每十分钟会把系统状态保存一遍存在/sa目录的文件,保存在/sa目录下的文件如当天为10号就会生成sa10的文件,不会该文件是二进制文件,不可以cat查看,不过隔天会生成sar10的文件,可以通过cat查看。

sar -n DEV :查看网卡流量,sar -n DEV 1 10表示每隔1秒显示一次,显示10次。

第一行是时间 第二行是网卡名 第三行rxpck是接收到的数据包,单位是个。(数据包几千是正常,如果是上万就不正常。) 第四行txpck是发出去的数据包,单位是个。 第五行rxkB接收的数据量,单位是kb。 第六行txkB发送出去的数据量,单位kb。

sar -n DEV -f /var/log/sa/sa18:可以查看sar命令记录的历史数据,sa18是当天18号的数据,也可以是其他时间。

sar -q:查看负载。sar -q 1 5,每隔1秒显示一次,显示5次。

sar -b:查看磁盘的读和写。sar -b 1 5,每隔1秒显示一次,显示5次。

nload

nload命令安装包: yum install -y epel-release(先前安装过的不用安装,直接安装nload包) yum install -y nload

动态显示网卡实时速度: nload 最上面一行显示的是网卡的信息和网卡数量,按左右方向键可以切换网卡(如果有攻击,那么进来的流量(incoming)就会很大)