1 vmstat
[lxf@hadoop101 ~]$ vmstat -n 2 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 1706112 6372 66404 0 0 14 2 1398 2204 8 9 83 0 0
2 0 0 1706056 6372 66404 0 0 0 0 1469 2323 8 9 83 0 0
0 0 0 1706056 6372 66404 0 0 0 0 1490 2258 8 9 83 0 0
vmstat -n 2 3
每2秒采样一次,共计采样3次
2 procs(进程) :重要
r | 处于运行和等待CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍,否则代表系统压力过大 |
---|---|
b | 等待资源的进程数,比如正在等待磁盘I/O、网络I/O等 |
3 memory(内存)
swpd | 使用虚拟内存大小(如果大于0,表示你的机器物理内存不足了),如果swpd的值不为0,但是si,so的值长期为0,这种情况不会影响系统性能。 |
---|---|
free | 空闲物理内存大小。 |
buff | 用作缓冲的内存大小。 |
cache | 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。 |
4 Swap
si | 每秒从交换区写到内存的大小(单位:kb/s),由磁盘调入内存。 |
---|---|
so | 每秒写入交换区的内存大小(单位:kb/s),由内存调入磁盘。 |
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。因为linux总是先把内存用光
5 IO
bi | 每秒读取的块数(现在Linux版本块的大小为1024bytes) |
---|---|
bo | 每秒写入的块数 |
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。
6 system(系统)
in | interrupts, 每秒中断数,包括时钟中断。 |
---|---|
cs | context switch, 每秒上下文切换数,及进程切换速率。 |
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。
7 CPU(以百分比表示) :重要
us | 用户进程占用CPU百分比,不包含nice值为负进程。如果长期大于50%,需要优化程序 |
---|---|
sy | 内核进程占用CPU百分比 |
id | 空闲CPU百分比 |
wa | 系统等待IO的CPU时间百分比 |
st | 这个虚拟机被hypervisor偷去的CPU时间百分比 |
注意:如果us+sy大于80%,说明可能存在CPU不足