二十九w查看系统负载vmstat命令top命令sar命令nload命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二十九w查看系统负载vmstat命令top命令sar命令nload命令相关的知识,希望对你有一定的参考价值。

二十九、w查看系统负载、vmstat命令、top命令、sar命令、nload命令

一、使用w查看系统负载

# w

06:10:09 up  6:20,  1 user,  load average: 0.00, 0.01, 0.05

USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT

root     pts/0    192.168.93.1     23:50    1.00s  0.22s  0.02s w

第1行从左至右显示的信息:当前系统时间 up 系统运行时间,登录用户数,平均负载。

远程登录为pts,虚拟机内登录为tty,Linux登录章节有详细介绍。

pts显示了远程的IP。

LOGIN:登录的时间

IDLE:空闲了多长时间。

load average: 0.00, 0.01, 0.05

load average:系统负载。

第1个数值表示1分钟内系统的平均负载值,第2个数值表示5分钟内系统的平均负载值,第3个数值表示15分钟内系统的平均负载值。着重看第1个值,它表示单位时间段内使用CPU的活动进程数(在这里其实就是1分钟内),值越大说明服务器压力越大。一般情况下,这个值只要不超过服务器的CPU数量就没关系。若服务器CPU数量为8,那么值小于8就说明当前服务器没压力,8就是理想状态。

负载理想的状态就是自己的CPU数量的数字,当前我的有1颗CPU,那么数字为1时就是理想状态,不闲也无压力。

查看服务器有多少个CPU,方法:

# cat /proc/cpuinfo

processor : 0      看第1行的这个值,0代表1颗,1代表2颗,此处为逻辑CPU,并非物理CPU。最大数字是7,代表8颗CPU。

# uptime

06:54:20 up  7:04,  1 user,  load average: 0.00, 0.01, 0.05

和w命令的第一行一模一样。

当系统负载过大时,无法判断具体哪里有压力。

二、vmstat命令

vmstat:监控系统的状态。

判断压力的问题源(CPU、内存、磁盘等),使用vmstat命令。

# 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 1543344   2076 182424    0    0     3     0   25   22  0  0 100  0  0

通常用法是: # vmstat 1    每1秒显示1次,动态显示。

或者# vmstat 1 5  每秒显示1次,显示5次自动结束。

打印的结果分为6个部分:procs、memory、swap、io、system、cpu。

重点关注:r、b、si、so、bi、bo。

procs:显示进程的相关信息。

      r(run):表示运行或等待CPU时间片的进程数。某一时刻1个CPU只能有1个进程占用,其他进程排队,等待CPU时间资源的进程依然是运行状态。该数值若长期大于服务器CPU的个数,则说明CPU资源不够用了。

      b(block):进程被CPU以外的资源阻断了。等待资源的进程数,这个资源指的是I/O,内存等。举例,当磁盘读写很频繁时,写数据就会很慢,此时CPU运算很快就结束了,但进程需把计算的结果写入磁盘,这样进程的任务才算完成,那此时该进程只能慢慢等待磁盘,这个进程就是b状态。该数值长时间大于1,则需要关注了。

menory:显示内存的相关信息。

      swpd:表示切换到交换分区中的内存数量,单位为KB。(若持续变动,说明内存和swap分区在频繁交换数据,说明内存不够了,为0正常)

       free:表示当前空闲的内存数量,单位为KB。

       buff:表示(即将写入磁盘的)缓冲大小,单位为KB。

       cache:表示(从磁盘中读取的)缓存大小,单位为KB。

swap:显示内存的交换情况。

        (i:in)si:表示由交换区写入内存的数据库,单位为KB。关联:swpd

    (o:out)so:表示由内存写入交换区的数据量,单位为KB。关联:swpd

io:显示磁盘的使用情况。和磁盘有关联,数字大代表在频繁读写,太多会造成b列增加。

        bi:表示从块设备读取数据的量(读磁盘),单位为KB。

        bo:表示从块设备写入数据的量(写磁盘),单位为KB。

system:显示采集间隔内发生的中断次数。

         in:表示在某一时间间隔内观测到的每秒设备的中断次数。

         cs:表示每秒产生的上下文切换次数。

cpu:显示CPU的使用状态。

        us:显示用户下所花费CPU的时间百分比。数字不会超过100,若长时间大于50说明系统资源不够了。

         sy:显示系统花费CPU的时间百分比。

         id:表示CPU处于空闲状态的时间百分比。

(wait)wa:表示I/O等待所占用CPU的时间百分比。数字太大说明CPU不够用。

          st:表示被偷走的CPU的所占百分比(一般为0,无需关注)服务器做了虚拟化,有虚拟机可能会偷走部分CPU。

us+sy+id=100

只需关注r、b、swpd、si、so、bi、bo、us、wa。多关注us

三、top命令

top:查看具体进程使用资源情况。

用法:# top         动态监控进程所占的系统资源,每隔3秒变一次。

特点:把占用系统资源(CPU、内存、I/O等)最高的进程放到最前面。

top - 04:42:37 up 50 min,  1 user,  load average: 0.07, 0.04, 0.05

Tasks:  95 total,   1 running,  94 sleeping,   0 stopped,   0 zombie

%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

KiB Mem :  1867048 total,  1546204 free,   136952 used,   183892 buff/cache

KiB Swap:  4194300 total,  4194300 free,        0 used.  1540464 avail Mem

Tasks:进程数。

Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie

94个进程,1个r状态的进程,93个休眠,0个停止进程。

zombie:僵尸进程。主进程以外中止,子进程留在这。

RES:进程所占的内存大小。物理内存大小。单位是字节。

%MEM:使用内存的百分比  

KiB Mem :  1867048 total,  1543120 free,   139108 used,   184820 buff/cache

物理内存(KB):进程数,剩余,已使用,buff/cache

默认情况下按CPU从高到低排序。按M可按内存排序,按P可切换回CPU排序。按数字1可列出所有核的CPU的使用状态,按1可切换,按q键可以退出top。

top - 05:40:02 up  1:48,  1 user,  load average: 0.00, 0.01, 0.05

Tasks:  94 total,   1 running,  93 sleeping,   0 stopped,   0 zombie

%Cpu0  :  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem :  1867048 total,  1546076 free,   136920 used,   184052 buff/cache

KiB Swap:  4194300 total,  4194300 free,        0 used.  1540360 avail Mem

# top -c:可以查看到具体命令的全局路径。

# top -bn1:一次性静态输出所有信息,适合写脚本时使用。

四、sar命令

sar命令:可以打印历史信息,可以显示当天从零点开始到当前时间的系统状态信息。

可以监控系统几乎所有资源的状态,如平均负载,网卡流量,磁盘状态,内存等。

被称为Linux里的瑞士×××。查看网卡流量是非常有用的

若没有该命令,yum install -y sysstat。

初次使用会报错,因为sar工具还没有生成相应的数据库文件。

它的数据库文件在/var/log/sa/目录下。

# sar -n DEV  查看网卡流量历史

该命令会把当天记录的网卡信息打印出来,每隔十分钟记录一次。

# sar -n DEV

Linux 3.10.0-693.el7.x86_64 (yaowei-01) 2018年03月20日 _x86_64_ (2 CPU)

06时00分02秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

06时10分01秒        lo          0.00      0.00      0.00      0.00      0.00      0.00      0.00

06时10分01秒     ens33      0.35     0.09      0.02      0.01      0.00      0.00      0.00

平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均时间:     ens33      0.35      0.09      0.02      0.01      0.00      0.00      0.00

IFACE:设备名称。

rxpck/s:每秒进入收取的包的数量。每秒收入几千是正常,上万就不正常了。

txpck/s:每秒发送出去的包的数量。

rxkB/s:每秒收取的数据量(KB)。

txkB/s:每秒发送的数据量。

后面几列不需关注。

若服务器丢包严重,就应查一下网卡流量是否异常。若rxpck/s数值,或者rxkB/s大于5000000,很可能是被攻击了。正常的服务器网卡流量没这么高,除非是自己在复制数据。

# sar -n DEV 1 5      实时查看网卡流量

# sar -n DEV -f /var/log/sa/sa23     查看某天的网卡流量历史,后面跟文件名,23日。

该目录下还会生成一个sar23的文件,可以cat,sa23是二进制文件,不能cat。

RedHat或Centos发行版,sar的库文件一定在/var/log/sa/下。

# sar -q  查看历史负载,有助于查看服务器在过去某个时间的负载情况。

# sar -b  查看磁盘

五、nload命令

比sar查看网卡流量更好用。系统默认没安装。

# yum install -y epel-release; yum install -y nload

因为nload包在epel扩展源里,所以要先安装一个扩展源。

# nload

Device ens33 [192.168.93.130] (1/2):

======================================================================================================================

Incoming:

                                                                               Curr: 944.00 Bit/s

                                                                               Avg: 1.12 kBit/s

                                                                               Min: 944.00 Bit/s

                                                                               Max: 1.86 kBit/s

                                                                               Ttl: 15.59 MByte

Outgoing:

                                                                               Curr: 8.58 kBit/s

                                                                               Avg: 8.44 kBit/s

                                                                               Min: 4.27 kBit/s

                                                                               Max: 9.03 kBit/s

                                                                               Ttl: 1.05 MByte

最上面一行为网卡名和IP地址,按右方向键可以查看其它网卡的网络流量。

Incoming:进入网卡的流量,Outgoing:网卡出去的流量。

主要关注Curr那行。按q退。


以上是关于二十九w查看系统负载vmstat命令top命令sar命令nload命令的主要内容,如果未能解决你的问题,请参考以下文章

学习二十七

使用w查看系统负载,vmstat命令,top命令,sar命令。nload命令

10.1 使用w查看系统负载 10.2 vmstat命令 10.3 top命令 10.4 sar命令

使用w查看系统负载 vmstat命令 top命令 sar命令nload命令

使用w查看系统负载vmstat命令top命令sar命令nload命令

使用w查看系统负载vmstat命令top命令sar命令nload命令