排查硬盘、CPU、内存瓶颈
关注 CPU、Memory、Disks I/O 这三个指标,是因为他们可以反应我们系统资源的使用情况,通过查看资源的使用情况进而帮助定位问题。
实例演示
下面我们拿前面讲解关联的 Webtours 脚本,监控一下其系统资源,具体步骤如下。
-
启动 Webtours;
-
选择录制好的 Sampler,添加 jp@gc-Permon Metrics Collector,添加监控指标如下图所示:

- 运行脚本

有没有很失望?居然报错了,报错信息如下所示:java.net.ConnectException: Connection refused: connect;
一定不要忘记启动 ServerAgent,上面的报错即为没有启动 ServerAgent 所造成;
- 启动 ServerAgent 后,增加负载(即增加线程),再次运行脚本,负载设置如下图所示:

我们成功监控到 CPU、Memory、Disks I/O:

对此图表说明如下:
纵轴:Performance Metrics,含义是性能指标,这里指的是 CPU、Memory、Disks I/O;
横轴:elapsed time,含义是经过的时间。
瓶颈位置
那么我们看到上面的图表后,如何确定系统资源的性能瓶颈呢?
请记住:发生拐点(尤其是特别陡的地方)一般情况下,即是性能开始出现瓶颈的地方。
先后顺序
分析 CPU、Memory、Disks I/O 也有优先顺序,遵循:内存优先级>磁盘优先级>CPU的原则进行性能瓶颈的一一排除;
具体请按照下图中所示去分析:

解释下上图所示的意义:
- 我们首先应该关注内存的使用情况,如果内存利用率已经大于50%时,观察其 Swap 区是否有活动,如果有,证明内存有潜在瓶颈;
- 反之如果内存利用率小于50%,证明内存此时没有瓶颈;
- 或者内存利用率大于50%,但是 Swap 区没有活动,同样证明此时内存没有瓶颈,应该把目光转向磁盘。
磁盘、CPU 的理解同内存一致,不在赘述。
总结
本次通过一个实例,再次演示了监控系统资源的过程,请注意并掌握以下几点:
- 务必在客户端先启动 ServerAgent,在进行系统资源的监控,否则会报错;
- 资源监控分析的优先顺序是:先内存,再磁盘,最后才是 CPU;
- 性能出现问题的位置:一般发生在拐点(这里指图形中的拐点)。
天行健,男儿当自强不息

浙公网安备 33010602011771号