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

目录

一、使用w查看系统负载
二、vmstat命令
三、top命令
四、sar命令
五、nload命令

一、使用w查看系统负载

w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。示例命令如下:

[root@minglinux-01 ~]# w
 20:34:22 up 1 min,  1 user,  load average: 0.15, 0.07, 0.03
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.89.1     20:34    4.00s  0.05s  0.02s w

第1行从左至右显示的信息依次为:时间、系统运行时间、登录用户数、平均负载。第2行开始的所有行则是当前登录的用户名及其登录地址等。其中最需要关注的是第1行中 load average:后面的3个数值。

第1个数值表示1分钟内系统的平均负载值,第2个数值表示5分钟内系统的平均负载值,第3个数值表示15分钟内系统的平均负载值。

我们着重看第1个值,它表示单位时间段内使用CPU的活动进程数(在这里其实就是1分钟内),值越大就说明服务器压力越大。一般情况下,这个值只要不超过服务器的CPU数量就没有关系。如果服务器的CPU数量为8,那么值小于8就说明当前服务器没有压力,否则就要注意一下了。

查看当前系统有几个CPU,我们可以使用命令grep -c 'processor' /proc/cpuinfo,processor的值是0就表示有1个逻辑cpu,值是10就表示有11个逻辑cpu;查看有几颗物理CPU时,则需要查看关键字physical id,命令为grep -c 'physical id' /proc/cpuinfo

[root@minglinux-01 ~]# grep -c 'processor' /proc/cpuinfo
2
[root@minglinux-01 ~]# grep -c 'physical id' /proc/cpuinfo
2

二、vmstat命令

vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。

[root@minglinux ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 1240688   2076 291800    0    0   376    74  145  435  1  2 97  0  0

使用vmstat 1 5命令每隔1秒输出一次状态,共输出5次;使用vmstat 1命令每隔1秒输出一次状态且一直输出,除非按Ctrl+C键结束。

[root@minglinux-01 ~]# vmstat 1 5
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 1573968   2076 158440    0    0    30     2   44   61  0  0 99  0  0
 0  0      0 1573948   2076 158472    0    0     0     0   96   64  0  1 99  0  0
 0  0      0 1573948   2076 158472    0    0     0     0   73   57  0  1 100  0  0
 0  0      0 1573948   2076 158472    0    0     0     0   47   40  0  0 100  0  0
 0  0      0 1573948   2076 158472    0    0     0     0   49   39  0  0 100  0  0

vmstat命令打印的结果共分为6部分:procs、memory、swap、io、system和cpu。请重点关注一下r、b、si、so、bi、bo这几列信息。

  • procs(进程)

r(run):表示运行等待CPU时间片的进程数。这个值也可以判断是否需要增加CPU,值如果长期大于服务器CPU的个数,则说明CPU资源不够用了。
b(block):表示等待资源的进程数,这个资源指的是I/O、内存等。该数值如果长时间大于1,则需要关注一下了。

  • Memory(内存)

swpd:表示切换到交换分区中的内存数量,单位为KB。
free:表示当前空闲的内存大小,单位为KB。
buff:表示(即将写入磁盘的)缓冲大小,单位为KB。
cache:表示(从磁盘中读取的)缓存大小,单位为KB。

  • swap(内存交换)

si:表示由交换区写入内存的数据量,单位为KB。
so:表示由内存写入交换区的数据量,单位为KB。
注意:当si和so两列的数值比较高并且不断变化
时,说明内存不够了。

  • io(磁盘使用)

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

注意:如果磁盘io压力很大,这两列的数值会比较高。

  • system(系统)

in:表示在某一时间间隔内观测到的每秒设备的中断次数。
cs:表示每秒产生的上下文切换次数。

注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。

  • CPU(以百分比表示)

us:显示用户下所花费CPU的时间百分比。
sy:显示系统花费CPU的时间百分比。
id:表示CPU处于空闲状态的时间百分比。
wa:表示I/O等待所占用CPU的时间百分比。
st:表示被偷走的CPU所占百分比(一般都为0,不用关注)。

三、top命令

top命令用于动态监控进程所占的系统资源,每隔3秒变一次。它的特点是把占用系统资源(CPU、内存、磁盘I/O等)最高的进程放到最前面。

[root@minglinux ~]# top
top - 00:40:28 up  1:14,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  98 total,   1 running,  97 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1865252 total,  1239748 free,   331000 used,   294504 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1323556 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
   526 root      20   0  298916   6232   4880 S  2.0  0.3   0:43.11 vmtoolsd
  1437 root      20   0  161840   2168   1548 R  0.7  0.1   0:00.18 top
   522 root      20   0   26376   1748   1440 S  0.3  0.1   0:00.12 systemd-lo+
     1 root      20   0   45956   6472   4128 S  0.0  0.3   0:01.62 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.18 ksoftirqd/0
     5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:+
     6 root      20   0       0      0      0 S  0.0  0.0   0:00.42 kworker/u2+
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0
     8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh
     9 root      20   0       0      0      0 S  0.0  0.0   0:01.57 rcu_sched
    10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-dr+
    11 root      rt   0       0      0      0 S  0.0  0.0   0:00.06 watchdog/0
    13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs
    14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns
    15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd
    16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback

上例中,top命令打印出了很多信息,包括系统负载(loadaverage)、进程数(Tasks)、CPU使用情况、内存使用情况以及交换分区使用情况。这些内容其实可以通过其他命令来查看,用top重点查看的还是下面的进程使用系统资源的详细状况,其中你需要关注%CPU、%MEM和COMMAND这几项所代表的意义。RES这一项为进程所占的内存大小,而%MEM这一项为使用内存的百分比。

在top状态下,默认按照cpu百分比进行排列,按Shift+m键可以按照内存使用大小排序,按数字1可以列出所有核CPU的使用状态,按q键可以退出top。

命令top -c显示详细的进程信息,示例命令如下:

[root@minglinux-01 ~]# top -c
top - 21:40:07 up  1:06,  2 users,  load average: 0.00, 0.01, 0.04
Tasks: 103 total,   1 running, 102 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1865276 total,  1568496 free,   134408 used,   162372 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1552140 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
   569 root      20   0  298916   6228   4880 S   0.3  0.3   0:08.73 /usr/bin/+
  1500 root      20   0  158804   5984   4624 S   0.3  0.3   0:00.28 sshd: roo+
  1523 root      20   0  161968   2276   1632 R   0.3  0.1   0:00.02 top -c
     1 root      20   0   46064   6464   4112 S   0.0  0.3   0:03.09 /usr/lib/+
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 [kthreadd]
     3 root      20   0       0      0      0 S   0.0  0.0   0:00.04 [ksoftirq+
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 [kworker/+
     6 root      20   0       0      0      0 S   0.0  0.0   0:00.30 [kworker/+
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.04 [migratio+
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 [rcu_bh]
     9 root      20   0       0      0      0 S   0.0  0.0   0:01.17 [rcu_sche+
    10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 [lru-add-+
    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.05 [watchdog+
    12 root      rt   0       0      0      0 S   0.0  0.0   0:00.07 [watchdog+
    13 root      rt   0       0      0      0 S   0.0  0.0   0:00.01 [migratio+
    14 root      20   0       0      0      0 S   0.0  0.0   0:00.02 [ksoftirq+
    16 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 [kworker/+

命令top -bn1,它表示非动态打印系统资源的使用情况,可以用在shell脚本中。该命令和top的唯一区别是它会一次性输出所有信息而非动态显示。示例命令如下:

[root@minglinux ~]# top -bn1 |head
top - 00:55:34 up  1:29,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  99 total,   1 running,  98 sleeping,   0 stopped,   0 zombie
%Cpu(s):  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 :  1865252 total,  1239196 free,   331504 used,   294552 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1323052 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  1440 root      20   0  161840   2072   1516 R  6.2  0.1   0:00.03 top
     1 root      20   0   45956   6472   4128 S  0.0  0.3   0:01.69 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd

四、sar命令

sar命令很强大,它可以监控系统几乎所有资源的状态,比如平均负载、网卡流量、磁盘状态、内存使用等。

Centos自身不带sar命令,使用yum -y install sysstat命令安装。

初次使用sar命令会报错,那是因为sar工具还没有生成相应的数据库文件(无需实时监控,因为不用去查询那个库文件,每隔十分钟会更新一次文件)。

sar -n DEV -f /var/log/sa/saxx 查看某一天的网卡流量历史,saxx每10分钟生成一次,是二进制文件,不能直接cat。
sar -n DEV -f /var/log/sa/sarxx sarxx文件是每天生成一次,可以直接cat查看。

[root@minglinux-01 ~]# sar
无法打开 /var/log/sa/sa23: 没有那个文件或目录
[root@minglinux-01 ~]# ls /var/log/sa
  • sar -n DEV 实时网卡流量
[root@minglinux-01 ~]# sar -n DEV 1 5     //每隔1秒显示1次,显示5次
Linux 3.10.0-862.11.6.el7.x86_64 (minglinux-01)     2018年10月23日     _x86_64_    (2 CPU)

21时51分16秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时51分17秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时51分17秒     ens33      0.00      0.00      0.00      0.00      0.00      0.00      0.00

21时51分17秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时51分18秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时51分18秒     ens33      1.00      1.00      0.06      0.40      0.00      0.00      0.00

21时51分18秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时51分19秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时51分19秒     ens33      1.00      1.00      0.06      0.40      0.00      0.00      0.00

21时51分19秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时51分20秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时51分20秒     ens33      1.00      1.00      0.06      0.40      0.00      0.00      0.00

21时51分20秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
21时51分21秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
21时51分21秒     ens33      2.00      2.00      0.12      0.46      0.00      0.00      0.00

平均时间:     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
平均时间:        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:     ens33      1.00      1.00      0.06      0.33      0.00      0.00      0.00

IFACE这一列表示设备名称,rxpck/s这一列表示每秒进入收取的包的数量,txpck/s这一列表示每秒发送出去的包的数量,rxkB/s这一列表示每秒收取的数据量(单位为KB),txkB/s这一列表示每秒发送的数据量(后面几列不需要关注)。

  • sar -q 查看历史负载
[root@minglinux-01 ~]# sar -q
Linux 3.10.0-862.11.6.el7.x86_64 (minglinux-01)     2018年10月23日     _x86_64_    (2 CPU)

21时50分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
22时00分01秒         0       116      0.01      0.02      0.05         0
平均时间:         0       116      0.01      0.02      0.05         0
  • sar -b 磁盘读写
[root@minglinux-01 ~]# sar -b
Linux 3.10.0-862.11.6.el7.x86_64 (minglinux-01)     2018年10月23日     _x86_64_    (2 CPU)

21时50分01秒       tps      rtps      wtps   bread/s   bwrtn/s
22时00分01秒      0.05      0.00      0.05      0.00      0.67
平均时间:      0.05      0.00      0.05      0.00      0.67
  • sar -f /var/log/sa/saxx 查看某一天的网卡流量历史,后面跟文件名

五、nload命令

sar虽然可以查看网卡流量,但是不够直观,还有一个更好用的工具,那就是nload。系统没有默认安装,使用yum install –y epel-release; yum install –y nload命令安装。

运行nload命令如下:

[root@minglinux-01 ~]# nload
Device ens33 [192.168.89.130] (1/2):
================================================================================
Incoming:





                                                       Curr: 944.00 Bit/s
                                                       Avg: 1.27 kBit/s
                                                       Min: 944.00 Bit/s
                                                       Max: 3.45 kBit/s
                                                       Ttl: 11.61 MByte
Outgoing:





                                                       Curr: 7.98 kBit/s
                                                       Avg: 8.00 kBit/s
                                                       Min: 4.12 kBit/s
                                                       Max: 9.25 kBit/s
                                                       Ttl: 890.67 kByte

最上面一行为网卡名字以及IP地址,按向右箭头可以查看其他网卡的网络流量。输出结果分为两部分,Incoming为进入网卡的流量,Outgoing为网卡出去的流量,我们关注的当然是Curr那行的数据,其单位也可以动态自动调整,非常人性化。按q退出该界面。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容