前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >02 性能分析之解决方案

02 性能分析之解决方案

作者头像
测试开发囤货
发布2021-08-11 15:13:24
4250
发布2021-08-11 15:13:24
举报
文章被收录于专栏:测试开发囤货测试开发囤货

常见瓶颈点分析

性能瓶颈出现频次

具体表现

TPS波动较大

未到期望并发前出现大量报错

并发数不断增加,CPU耗用不高

一、TPS波动较大

1、原因解析

出现TPS波动较大问题的原因一般有网络波动其他服务资源竞争以及垃圾回收问题这三种。

2、排查方法:

2.1 压力测试环境一般都是在内网或局域网内进行,可通过监控网络的出入流量来排查;

2.2 其他服务资源竞争也可能造成这一问题,可以通过top命令或服务梳理方式来排查在压测时是否有其他服务运行;

2.3 垃圾回收问题相对来说是最常见的导致TPS波动的一种原因,可以通过GC监控命令来排查,命令如下:

代码语言:javascript
复制
#GC信息输出到文件
jstat -gc PID 1000 120 >> /path/gc.txt
jsatt -gcutil PID 1000 120 >> /path/gc.txt

二、未到期望并发前出现大量报错

1、原因解析:

出现该类问题,常见的原因有短连接导致的端口被完全占用以及线程池最大线程数配置较小或超时时间较短导致。

2、解决方案:

短连接问题:释放TIME_WAIT scoket用于新的连接;

线程池问题:修改服务节点中容器的server.xml文件中的配置参数,主要修改如下几个参数:

代码语言:javascript
复制
#最大线程数,即服务端可以同时响应处理的最大请求数:maxThreads="200"
#Tomcat的最大连接线程数,即超过设定的阈值,Tomcat会关闭不再需要的socket线程:maxSpareThreads="200"
#等待超时的阈值,单位为毫秒,设置为0时表示永不超时:connectionTimeout="20000"

三、并发数不断增加,CPU耗用不高

1、原因解析:

出现该类问题,常见的原因有:SQL没有创建索引/SQL语句筛选条件不明确代码中设有同步锁高并发时出现锁等待

2、解决方案

SQL问题:没有索引就创建索引,SQL语句筛选条件不明确就优化SQL和业务逻辑;

同步锁问题:是否去掉同步锁,有时候不仅仅是技术问题,还涉及到业务逻辑的各种判断,建议和开发产品同事沟通确认;

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发囤货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档