procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 5 0 0 411652 2467716 444288 0 0 77824 0 2640 518 1 99 0 0 0 2 2 0 149360 2943488 373780 0 0 178088 0 3873 2225 1 70 4 26 0 2 2 0 127968 2967288 372204 0 0 214680 0 4490 3424 1 56 1 43 0
[root@centos7 ~]# ps aux|grep D USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 970 0.0 0.1 112900 4312 ? Ss 19:45 0:00 /usr/sbin/sshd -D nginx 1011 0.4 0.7 57524 30944 ? D 19:45 0:25 nginx: worker process
procs(进程):
r 展示正在运行和等待运行的进程个数,当这个值超过CPU个数时,就会出现CPU瓶颈。
b 处在非中断睡眠状态D的进程数。即等待IO的进程数量。
6 0 0 208812 2386860 704376 0 0 185984 0 4010 2266 9 68 1 22 0 4 1 0 270104 2573608 688096 0 0 186752 0 3226 770 10 63 24 3 0 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 4 0 0 113068 2485724 705940 0 0 176316 0 3978 2172 11 68 1 20 0 0 0 0 353808 2485724 690400 0 0 0 0 2408 3673 5 16 79 0 0 0 0 0 615180 2217484 692300 0 0 0 0 6323 10006 12 38 50 0 0
1 1 0 291892 2334768 904996 0 0 208896 0 3880 3215 1 43 3 54 0
2 1 0 152140 2474640 905496 0 0 217088 0 4473 3394 1 56 2 42 0
memory(内存):
swpd 已使用的虚拟内存大小。如果虚拟内存使用较多,可能是系统的物理内存比较吃紧,需要采取合适的方式来减少物理内存的使用。swpd不为0,并不意味物理内存吃紧,si、so的值长期为0,这也是没有问题的。
free 空闲的物理内存的大小
buff 用来做buffer(缓存,主要用于块设备缓存)的内存数,单位:KB
cache 用作缓存的内存大小。如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。单位:KB
swap(交换分区):
si 从磁盘写入到swap虚拟内存的交换页数量,单位:KB/秒。如果这个值大于0,表示物理内存不够用或者内存泄露了。
so 从swap虚拟内读出的数据。即从swap中的数据写入到磁盘的交换页数量,单位:KB/秒,如果这个值大于0,表示物理内存不够用或者内存泄露了。
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。 当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so。如果free很少,但是si和so是0,那么不用担心,系统性能这时不会受到影响的。
io(这里指进出内存的数据):
bi 每秒从块设备接收到的块数,单位:块/秒 也就是读块设备。bi通常是读磁盘的数据
bo 每秒发送到块设备的块数,单位:块/秒 也就是写块设备。bo通常是写磁盘的数据
system(系统):
in 每秒的中断数,包括时钟中断。
cs 每秒的环境(上下文)切换次数。比如我们调用系统函数,就要进行上下文切换,而过多的上下文切换会浪费较多的cpu资源,这个数值应该越小越好。
cpu(使用cpu时间的百分比,最大100%):
us 用户CPU时间(非内核进程占用时间)(单位为百分比)。 us的值比较高时,说明用户进程消耗的CPU时间多
sy 系统使用的CPU时间(单位为百分比)。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
id 空闲的CPU的时间(百分比),在Linux 2.5.41之前,这部分包含IO等待时间。
wa 等待IO的CPU时间,这个值为0 .这个指标意味着CPU在等待硬盘读写操作的时间,用百分比表示。wait越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
st 虚拟机占用cpu时间的百分比。如果centos系统上运行了kvm虚拟机,而kvm虚拟上又运行了几个虚拟机,那么这个值将显示这个几个正在运行的虚拟机从物理机中窃取CPU运行时间的百分比。
1)CPU利用率比例分配
us——用户态——65%~70%
sy——内核态——30%~35%
id——空闲——0%~5%
cs——Context Switches:上下文切换的数目直接关系到CPU 的使用率,如果CPU 利用率保持在上述均衡状态时,有大量的上下文切换是正常的。(上下文切换指的就是cpu中寄存器数据的写入和读出。每个进程在使用cpu时,都需要把自己的数据先写入cpu的缓存(寄存器)中,然后cpu才能根据缓存中的数据来计算。)
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 1 776 139596 2282668 1109480 0 0 217088 0 4507 3382 1 57 1 42 0 1 1 776 161196 2261052 1109428 0 0 212992 0 4475 3343 0 58 1 42 0 2 1 776 151408 2270940 1109528 0 0 217088 0 4482 3333 1 57 1 41 0 2 1 776 150248 2270680 1109528 0 0 217088 0 4485 3384 1 57 1 42 0 1 1 776 133148 2289044 1109464 0 0 212992 0 4417 3316 1 57 1 41 0 0 0 776 155152 2265980 1109700 0 0 147644 0 3179 2360 0 40 32 28 0 0 0 776 155152 2265980 1109700 0 0 0 0 44 59 0 0 100 0 0 0 0 776 155152 2265980 1109700 0 0 0 0 31 49 0 0 100 0 0 0 0 776 155152 2265980 1109700 0 0 0 0 49 65 0 0 100 0 0
用来连续查看系统整体运行状态,主要可以注意查看r、free、si、so、bi、bo、us、id、wa(wa大于40%就要查看bi、bo情况了)。