随着互联网发展,人们对网络的依赖越来越大,成千上万的用户游转在网络中,给提供服务的系统带来严重的系统负荷,同时却又对系统的流畅度等体验要求更高,系统性能的好坏将严重影响企业的利益,因此对于 IT 服务系统的性能测试与优化也越来越受业界的重视 。
如何打造一个性能更高的系统呢?
- 找到短板,去优化去提升
- 快速定位业务的性能瓶颈,才是提升系统的关键点
性能压测的目的
找出性能瓶颈,给出性能指标,给出需要的配置
影响性能的主要有这5大类:
image.png
场景分析一:
高并发问题
- 稳定性压测
- 持续一定时长
- 高并发时报错
瓶颈定位
- 分析异常场景
- 借助工具定位
并发问题:
- 并发量较小时:内存出现较小量级的增加,服务整体平稳
- 并发量增大时:内存使用随着程序运行增长,增加到一定量时,运行一段时间,内存耗尽,导致服务不可用。
内存溢出:
压测时,top命令监控----写日志问题。磁盘IO速度小于写日志速度造成。
场景分析二:
资源利用率低,吞吐量上不去
- 通过观察系统日志,不同并发时,业务是否出现异常,超时,是否有网络问题。
- 是否是发压机有异常即发压机瓶颈。
- 线程设置不合理问题。
- 代码中加锁(同步锁等问题)
场景分析三:
资料利用率较高,吞吐量上不去
- 查看上下文切换
- 改动线程池,对比压测
场景分析四:
偶发超时
- 日志定位
- 网络抖动
- 借助工具定位耗时模块
代码层面的问题解决方法
- 监控平台查询是否有Mysql或者Redis慢查询
- 借助工具(Arthas)监控体系请求的具体耗时情况,去定位偶发超时问题。
总结一下
image.png作者:牛颖 贝壳找房高级测试工程师
来源:极客时间 *每日一课
网友评论