性能调优必备工具

工欲善其事,必先利其器。要对系统进行调优,除知道思路和方法外,还需要知道调优工具,接下来给大家介绍对 Linux 系统进行调优时需要用到的一些工具。熟练掌握这些工具,有助于迅速了解 Linux 的运行状态,最终给出合理、稳妥的系统调优方案。

这里从 Linux 系统的 CPU、内存、磁盘、网络 4 个方面展开介绍,分别说明对这 4 个方面进行性能评估的专业工具。

一、CPU 性能调优工具

cpu 性能评估常用的工具由 vmstat、uptime、mpstat 等,下面分别进行介绍。

1.vmstat 命令

vmstat 是 Virtual Memory Statistics(虚拟内存统计)的缩写,很多 Linux 发行版本部分默认安装了此命令,利用 vmstat 命令可以对操作系统的 CPU 活动、内存信息、进程状态进行监控,不足之处是无法对某个进程进行深入分析。

vmstat 使用语法如下:

vmstat [-V] [-n] [delay [count]]

各个选项及参数含义如下所述:

  • -V:表示打印出版本信息。是可选参数。
  • -n:表示在周期性循环输出时,输出的头部信息仅显示一次。
  • delay:表示两次输出之间的间隔信息。
  • count:表示按照 delay 指定的时间间隔统计的次数。默认为1.

例如:

[root@huyouba1 ~]# vmstat  3    //表示每3秒更新一次输出信息,循环输出,按 Ctrl+C 组合键停止输出
[root@huyouba1 ~]# vmstat  3 5  //表示每3秒更新一次输出信息,统计 5 次后停止输出

对上面没想的输出结束如下:

  • procs:显示队列和扽会带状态

r 列表示运行和等待 CPU 时间片的进程数,这个值如果长期大于系统 CPU 个数,说明 CPU 不足,需要增加 CPU。

b 列表示在等待资源的进程数,如正在等待I/O、内存交换等。

  • memory:显示物理内存状态。

swpd 列表示切换到内存交换区的内存数量(以 KB 为单位)。如果 swpd 的值不为 0,或者比较大,只要si、so的值长期为0,这种情况下一般不用担心,不会影响系统性能。

free 列表示当前空闲的物理内存数量(以 KB 为单位)

buff 列表示 buffers cache 的内存数量,一般对块设备的读写才需要缓冲。

cache 列表示 page cached 的内存数量,一般作为文件系统 cached,频繁访问的文件都会被cached。如果cache值较大,说明cached的文件数较多如果此时I/O中的bi比较小,说明文件系统效率比较好。

  • swap:显示交换分区的使用状态

si 列表示由磁盘调入内存,也就是内存进入内存交换区的数量

so 列表示由内存调入磁盘,也就是内存交换区进入内存的数量

一般情况下,si、so 的值都为 0,如果si、so的值长期不为0,则表示系统内存不足。需要增加系统内存。

  • io:显示磁盘读写状况

bi 列表示从块设备读入数据的总量(即读磁盘)(KB/s)

bo 列表示写入到块设备的数据总量(即写磁盘)(KB/s)

这里设置的 bi+bo参考值为1000,如果超过1000,而且 wa 值较大,则表示系统磁盘I/O有问题,应该考虑提高磁盘的读写性能。

  • system:显示采集间隔内发生的终端数。

in 列表示在某一时间间隔中观测到的每秒设备终端数

cs 列表示每秒产生的上下文切换次数

上面这两个值越大,由内核消耗的 CPU 时间会越多

  • cpu:显示 CPU 的使用状态

us 列显示了用户进程消耗的 CPU 时间百分比此列时关注的重点。us 值比较高时,说明用户进程消耗的 CPU 时间多,但是如果长期大于 50%,就需要考虑优化程序或算法

sy 列显示了内核进程消耗的 CPU 时间百分比。sy 值较高时,说明内核消耗的 CPU 资源很多。根据经验,us+sy 的参考值为 80%,如果 us+sy 大于 80% 说明可能存在 CPU 资源不足的情况。

id 列显示了 CPU 处在空闲状态的时间百分比

wa 列显示了 I/O 等待所占用的 CPU 时间百分比。wa 值越高,说明 I/O 等待时间越严重。根据经验 wa 的参考值超过 20%,说明 I/O 等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者磁盘控制器的带宽瓶颈造成的(主要是块操作)

综上所述,在对 CPU 的评估中,需要重点主义的是 procs 项 r 列的值和 CPU 项 us、sy 和 id 列的值。

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦