服务端压测如何定位性能瓶颈?

2020-08-02  本文已影响0人  成功在于实践

随着互联网发展,人们对网络的依赖越来越大,成千上万的用户游转在网络中,给提供服务的系统带来严重的系统负荷,同时却又对系统的流畅度等体验要求更高,系统性能的好坏将严重影响企业的利益,因此对于 IT 服务系统的性能测试与优化也越来越受业界的重视 。

如何打造一个性能更高的系统呢?

  1. 找到短板,去优化去提升
  2. 快速定位业务的性能瓶颈,才是提升系统的关键点

性能压测的目的

找出性能瓶颈,给出性能指标,给出需要的配置

影响性能的主要有这5大类:


image.png

场景分析一:

高并发问题

  1. 稳定性压测
  2. 持续一定时长
  3. 高并发时报错

瓶颈定位

  1. 分析异常场景
  2. 借助工具定位

并发问题

  1. 并发量较小时:内存出现较小量级的增加,服务整体平稳
  2. 并发量增大时:内存使用随着程序运行增长,增加到一定量时,运行一段时间,内存耗尽,导致服务不可用。

内存溢出
压测时,top命令监控----写日志问题。磁盘IO速度小于写日志速度造成。

场景分析二:

资源利用率低,吞吐量上不去

  1. 通过观察系统日志,不同并发时,业务是否出现异常,超时,是否有网络问题。
  2. 是否是发压机有异常即发压机瓶颈。
  3. 线程设置不合理问题。
  4. 代码中加锁(同步锁等问题)

场景分析三:

资料利用率较高,吞吐量上不去

  1. 查看上下文切换
  2. 改动线程池,对比压测

场景分析四:

偶发超时

  1. 日志定位
  2. 网络抖动
  3. 借助工具定位耗时模块

代码层面的问题解决方法

  1. 监控平台查询是否有Mysql或者Redis慢查询
  2. 借助工具(Arthas)监控体系请求的具体耗时情况,去定位偶发超时问题。

总结一下

image.png

作者:牛颖 贝壳找房高级测试工程师
来源:极客时间 *每日一课

上一篇 下一篇

猜你喜欢

热点阅读