性能测试问题排查一例——网络带宽瓶颈
来源:互联网 发布:行知小学校园网 编辑:程序博客网 时间:2024/06/04 18:02
近期在做一个项目的性能测试时,在打压时发现压力达到100hps后就一直打不上去,同时还会报读redis服务器超时的错误。查看了下打压服务器的cpu和内存占用,没有发现什么异常。
Cpu占用:
内存占用:
1、由于会报redis链接超时错误,首先定位到的是redis服务器挂了,找到开发将log中添加具体连接超时的redis服务器ip信息后,重新跑了一遍。
依然会报连接redis服务器超时错误,开发立即查看了下对应ip的redis服务器。发现运行情况没有出现任何问题,各项指标均正常。
2、于是查看压力服务器的各项指标来定位问题。
用sar命令看了下磁盘性能,发现每秒写扇区的次数达到300以上,怀疑是写入次数过多导致的,于是查了下开发的脚本,发现开发每一步判断逻辑中都加了写errorlog操作。于是怀疑是写log导致的。
将开发的写log操作大部分都关闭(除了读redis服务器错误)后,重新跑了一下,发现写扇区的次数降到100左右,但是hps依然打不上去。排出了磁盘写入的问题。
3、接下来安装了nmon工具后,重新跑了一遍,看了下网络传输,发现hps达到100左右时,网络出口占用为120M/s!这是千兆网卡的满载速率了。于是定位到网络成为主要的瓶颈。
网络I/O传输表:可以发现eth0-write的速率达到120千KB,也就是120M(注意这里的单位是“千”)
4、查了下自己的打压脚本,发现部分请求的返回数据大小为4M。果断将请求的返回改为200K后重新打压后,压力可以成功达到2000hps以上。同时也没有再出现读redis超时的错误。
至此,此次问题排查圆满结束。同时向大家着力推荐一下nmon工具。里面记录的参数很全,基本上定位性能的指标(比如cpu、内存、每个cpu、每个磁盘分区的读写、磁盘busy情况、网络吞吐、网络包数据等)都能够统计到。
Nmon工具介绍:http://venus3.desktopqa.com/AppStore/Wiki/Pages/WikiArticles.aspx?id=5256
Nmon分析指标详解:http://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.cmds4/nmon.htm
- 性能测试问题排查一例——网络带宽瓶颈
- Linux系统性能问题定位-网络带宽瓶颈
- 性能测试——瓶颈分析方法
- 性能测试—瓶颈分析方法
- 排查tomcat服务性能瓶颈
- 性能测试如何定位瓶颈(一)
- IOCP接收性能测试。瓶颈或者问题?
- Linux服务器网络带宽测试——iperf
- 实例解析MySQL性能瓶颈排查定位
- 实例解析MySQL性能瓶颈排查定位
- 性能测试瓶颈分析
- 测试Python性能瓶颈
- 性能问题排查过程——记录一下
- 性能测试jvm进程意外退出问题排查
- 【架构性能分析(1)】MySQL性能瓶颈排查定位
- java 性能问题 排查
- redis 性能问题排查
- awr性能问题排查
- 查看SQL SERVER 数据库正在执行的语句和时长等
- ZCMU-1373-Crixalis's Equipment
- shell调度控制面命令
- C++自动生成的构造函数为空且不执行初始化操作
- Java 静态(static)与非静态执行顺序
- 性能测试问题排查一例——网络带宽瓶颈
- 行人检测(Pedestrian Detection)资源
- Android之一张类图说明AMS
- MySQLTIMESTAMP时间戳
- 开发者入门必读:最值得看的十大机器学习公开课
- Spring 菜鸟教程 异常 集锦
- 六、数据存储
- struts-spring-mybatis整合项目搭建
- Java笔试题:将集合中的学生信息按照学生的年龄升序排列