Linux运维之系统性能瓶颈工具vmstat分析

Posted fenggeblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux运维之系统性能瓶颈工具vmstat分析相关的知识,希望对你有一定的参考价值。

vmstat是一个很好用的检测系统性能工具,没有过多的参数,直接一个vmstat命令即可,不过我们一般加上-w表示宽格式输出。然后再附加上侦测时间即可

例如:

vmstat  -w  3  100

表示每3秒检测一次并输出系统信息,一共输出100次。

这样的格式的命令很好用,接下来我们运行一下这个命令并对输出的数据进行分析

[[email protected]:vg_adn_tidbCkhsTest:54.158.254.36:172.31.30.62 ~/tidb-bench/sysbench]#vmstat -w 3 100
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
 r  b         swpd         free         buff        cache   si   so    bi    bo   in   cs  us  sy  id  wa  st
15  0            0     24466112         1476      2454284    0    0    95   101    2    2   3   0  97   0   0

参数讲解:

r:The number of runnable processes (running or waiting for run time).
  表示当前运行队列中的线程的数目,代表线程处于可运行状态,但CPU还未能执行。这个值如果长期大于系统CPU的逻辑个数,说明CPU不足,需要增加CPU。
b: The number of processes in uninterruptible sleep.
  表示处在非中断睡眠状态的进程数。通俗的说就是表示在等待资源的进程数,比如正在等待I/O或者内存交换等。
us: Time spent running non-kernel code.
  表示用户进程消耗的CPU利用率的百分比。us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期大于50%,就需要考虑优化程序和算法
sy: Time spent running kernel code.
  表示内核进程消耗的CPU时间的百分比,sy的值越高时,说明内核消耗的CPU资源很多。
注意:us+sy:参考值为80%,如果us+sy这个值大于80%说明可能存在CPU资源不足。

id: Time spent idle.  Prior to Linux 2.5.41, this includes IO-wait time.
  CPU空闲时间的百分比。如果这个值很小,表示CPU没有空闲时间,一直处于忙碌状态。
wa: Time spent waiting for IO.  Prior to Linux 2.5.41, included in idle  
  所有可运行状态线程被阻塞在等待IO请求的百分比
cs: The number of context switches per second
  当前kernel system中,发生上下文切换的数目。系统中越多的上下文切换,在处理器的调度管理下,内核将得到更多的工作。
in: The number of interrupts per second, including the clock。
  当前中断被处理的数目
si: Amount of memory swapped in from disk (/s)
  从磁盘交换到内存的交换页数量
so: Amount of memory swapped to disk (/s)
  从内存交换到磁盘的交换页数量
bi和bo可以使用iostat -x命令来查看详细信息。

 





















以上是关于Linux运维之系统性能瓶颈工具vmstat分析的主要内容,如果未能解决你的问题,请参考以下文章

linux系统性能优化及瓶颈分析

系统性能分析-vmstat命令详解

linux系统中常见的性能分析工具

系统性能分析工具

linux运维之分析系统负载及运行状况

linux 系统运维小工具