高可用架构 – 系统性能评估

性能评估的要点

  • CPU

主要工具:vmstat

  • 内存

主要工具:free

  • 磁盘I/O

主要工具:iostat、sar

  • 网络I/O

主要工具:ifstat

  • 系统整体性能

主要工具:top

CPU 评估

vmstat 命令结果分析:

  • procs

r 运行和等待CPU时间片的进程数,。

b 等待资源的进程数。

  • swap

si 每秒从磁盘读入虚拟内存的大小。

so 每秒虚拟内存写入磁盘的大小。

  • cpu

us 用户进程CPU使用率。

sy 系统CPU使用率。

id 空闲CPU使用率。

id + us + sy = 100

经验:

procs:r
procs:b
swap:si
cpu:us
cpu:sy
us + sy

内存评估

free 命令重点指标: free (应用程序可用内存数量)。

经验:

  • “free/total > 70%” 内存充足。
  • “free/total < 20%" 内存不足。
  • “20% < free/total < 70%" 内存基本够用。

磁盘I/O评估

iostat 命令结果分析:

rkB/s
wkB/s
svctm
await
util

经验:

  • rkB/swkB/s 的值如果长期较高,说明持续有大量数据读写,需要警惕。
  • svctmawait 值相近时,说明几乎没有I/O等待,磁盘性能好。如果 await 远高于 svctm ,说明I/O队列等待太长,需要优化程序或更换磁盘。

网络I/O评估

ifstat 命令结果分析:

RX Pkts/Rate
RX Errs/Drop
TX Pkts/Rate
RX Data/Rate
TX Data/Rate

系统整体性能评估

top 命令重要指标: load average ,表示任务队列的平均长度(1分钟、5分钟、15分钟前到现在平均值)。

经验:

这3个值的大小一般不能大于系统CPU的核数,如果长期大于CPU的核数,说明CPU很繁忙,负载很高。

例如图中有2个CPU,那么健康值为: load average < 2