1 vmstat

  1. [lxf@hadoop101 ~]$ vmstat -n 2 3
  2. procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
  3. r b swpd free buff cache si so bi bo in cs us sy id wa st
  4. 0 0 0 1706112 6372 66404 0 0 14 2 1398 2204 8 9 83 0 0
  5. 2 0 0 1706056 6372 66404 0 0 0 0 1469 2323 8 9 83 0 0
  6. 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不足