1.w命令查看系统负载

w|cat查看系统负载信息,load average后的数字分别代表1分钟,5分钟,15分钟的系统负载情况

[root@test_01 ~]# w|cat
 21:02:30 up 16 min,  1 user,  load average: 0.00, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.231.1    20:52    6.00s  0.04s  0.01s w

load average的数值=逻辑cpu数量,为最理想的状态。cpu数量可以通过查看以下文件

[root@test_01 ~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 94
model name      : Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
stepping        : 3
microcode       : 0x8a

使用uptime命令可以查看相同的内容

[root@test_01 ~]# uptime
 21:10:57 up 24 min,  1 user,  load average: 0.08, 0.03, 0.05

2.vmstat命令

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。

每一秒进行刷新共5次,显示系统信息

[root@test_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 1578536    876 167872    0    0    27     2   31   45  0  0 99  0  0
 0  0      0 1578520    876 167872    0    0     0     0   36   43  0  0 100  0  0
 0  0      0 1578520    876 167872    0    0     0     0   27   40  0  0 100  0  0
 0  0      0 1578520    876 167872    0    0     0     0   39   44  0  0 100  0  0
 0  0      0 1578520    876 167872    0    0     0     0   58   61  0  0 100  0  0

r:表示运行队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了。

b:表示阻塞进程(在等待)

swpd:交换内存使用的数量,如果swpd的数值在频繁变化,说明内存不足

free:空闲物理内存大小

buffer:inux/Unix系统用来存储目录么内容,权限等的缓存。

cache: cache直接用来记忆我们打开的文件,给文件做缓冲

si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

so:每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

bi:块设备每秒接收的块数量

bo:块设备每秒发送的块数量

in:每秒CPU的中断次数,包括时间中断

us:用户CPU时间,用户占用的cpu百分比

sy:系统自身占用的cpu百分比

id:cpu空闲百分比

us+sy+id=100

wa:等待cpu的进程

命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。 

[root@test_01 ~]# top
top - 21:45:12 up 59 min,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  99 total,   1 running,  98 sleeping,   0 stopped,   0 zomb
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.
KiB Mem :  1867292 total,  1557236 free,   127972 used,   182084 b
KiB Swap:  2097148 total,  2097148 free,        0 used.  1550356 a

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM
     1 root      20   0  128092   6700   3944 S   0.0  0.4
     2 root      20   0       0      0      0 S   0.0  0.0
     3 root      20   0       0      0      0 S   0.0  0.0
     6 root      20   0       0      0      0 S   0.0  0.0
     7 root      rt   0       0      0      0 S   0.0  0.0

第一行:

22:01:46 :系统时间

up  1:15:持续运行时间

1 user:登陆用户

load average: 0.00, 0.01, 0.05:系统1分钟、5分钟、15分钟的CPU负载信息

第二行:

 100 total:进程总数

1 running:正在运行的进程数

 99 sleeping:休眠的进程数

0 stopped:停止的进程数

0 zomb:僵尸进程数

第三行:

Cpu(s):表示这一行显示CPU总体信息 
0.0%us:用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间。 
0.2%sy:内核占用CPU时间百分比 
0.0%ni:改变过优先级的进程占用CPU的百分比 
99.8%id:空闲CPU时间百分比 
0.0%wa:等待I/O的CPU时间百分比 
0.0%hi:CPU硬中断时间百分比 
0.0%si:CPU软中断时间百分比 
注:这里显示数据是所有cpu的平均值,如果想看每一个cpu的处理情况,按1即可;折叠,再次按1;

进程信息:

再下面就是进程信息: 
PID:进程的ID 
USER:进程所有者 
PR:进程的优先级别,越小越优先被执行 
NI:nice值 
VIRT:进程占用的虚拟内存 
RES:进程占用的物理内存 
SHR:进程使用的共享内存 
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 
%CPU:进程占用CPU的使用率 
%MEM:进程使用的物理内存和总内存的百分比 
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 
COMMAND:进程启动命令名称

命令:

q:退出top命令
<Space>:立即刷新
s:设置刷新时间间隔
c:显示命令完全模式
t::显示或隐藏进程和CPU状态信息
m:显示或隐藏内存状态信息
l:显示或隐藏uptime信息
f:增加或减少进程显示标志
S:累计模式,会把已完成或退出的子进程占用的CPU时间累计到父进程的MITE+
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
u:指定显示用户进程
r:修改进程renice值
kkill:进程
i:只显示正在运行的进程
W:保存对top的设置到文件~/.toprc,下次启动将自动调用toprc文件的设置。
h:帮助命令。
q:退出

4.sar命令

sar(System ActivityReporter系统活动情况报告)是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等,sar命令有sysstat安装包安装。
查看网卡流量:

[root@test_01 ~]# sar -n DEV 1 3
Linux 3.10.0-514.el7.x86_64 (test_01)   2017年11月27日  _x86_64_        (2 CPU)

22时31分46秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
22时31分47秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时31分47秒     ens33      1.00      1.00      0.06      0.18      0.00      0.00      0.00

22时31分47秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
22时31分48秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时31分48秒     ens33      1.00      1.00      0.06      0.40      0.00      0.00      0.00

22时31分48秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
22时31分49秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
22时31分49秒     ens33      1.00      1.00      0.06      0.40      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.32      0.00      0.00      0.00

rxpck/s 每秒钟接受的数据包

#txpck/s 每秒钟发送的数据库

#rxKB/S 每秒钟接受的数据包大小,单位为KB

#txKB/S 每秒钟发送的数据包大小,单位为KB

#rxcmp/s 每秒钟接受的压缩数据包

#txcmp/s 每秒钟发送的压缩包

#rxmcst/s 每秒钟接收的多播数据包    


查看系统负载

[root@test_01 ~]# sar -q
Linux 3.10.0-514.el7.x86_64 (test_01)   2017年11月27日  _x86_64_        (2 CPU)

22时30分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
22时40分01秒         0       117      0.00      0.01      0.05         0
平均时间:         0       117      0.00      0.01      0.05         0

查看磁盘读写

[root@test_01 ~]# sar -b
Linux 3.10.0-514.el7.x86_64 (test_01)   2017年11月27日  _x86_64_        (2 CPU)

22时30分01秒       tps      rtps      wtps   bread/s   bwrtn/s
22时40分01秒      0.05      0.00      0.05      0.00      0.78
平均时间:      0.05      0.00      0.05      0.00      0.78