排查压测接口时,应用出现sys_cpu 使用率过高的问题

  •  项目背景

  公司为缩减服务器成本,需要对WMS系统服务器CPU核数进行缩容,需要在新的服务器上对核心接口及主要业务流程进行压测,评测新服务器上的应用是否满足预期性能指标

  • 测试场景

   4级、5级扫码接口混合场景

  • 测试环境

 应用

 配置

 数量

 MCS(单实例,其它应用混合部署)

 16C/64G/SAS Raid10

 1

 Mysql

 16C/128G/SSD Raid5

 1

 压力机

 16C/64G/SAS Raid10

 1

 

  • 网络环境

  公司内网

  • 问题描述

  Jmeter压测时,应用负载波动很大,持续几十秒钟之后,使用user使率下降到个位数,sys使用率突然上升到90%以上

  • 问题排查

  1. 查看应用日志并没有报错异常
  2. 查看Mysql资源使用率(一直不高)
  3. 降低并发数,问题仍然存在,只不过user使用率下降周期变长,sys使用率仍然飙到90%
  4. Dump应用线程,发现大量线程都在Waiting状态

  5. 增加Tomcat连接池到1000,问题仍然存在

  6. strace查看应用进程发现有 Connection time out的错误

  7. 通过步骤6的线索,查看应用端口连接状态,发现有2w多的timeout状态的连接。

 看到这就知道问题所在了,如果客户端的并发量持续很高,会出现大量处于timewait状态的连接,会使服务器因端口资源不足而拒绝为一部分客户端请求。修改内核参数之后问题解决,修改内容如下:

 sysctl -w net.ipv4.tcp_tw_reuse

 sysctl -w net.ipv4.tcp_tw_recycle=1

 sysctl -w net.ipv4.ip_local_port_range="2048 65000"

 

转载于:https://www.cnblogs.com/kelvinwxq/p/6773765.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值