排查硬盘、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;
  • 性能出现问题的位置:一般发生在拐点(这里指图形中的拐点)。
posted @ 2018-11-22 11:32  长安。  阅读(401)  评论(0)    收藏  举报