1、场景执行,TPS波动较大
原因分析:
TPS波动较大,原因一般有网络问题、其他服务进程占用以及垃圾回收;
排查方法:
1)监控服务器的网络使用情况;
2)监控服务器的CPU使用情况,查看是否有其他进程占用资源;
3)查看垃圾回收情况,jstat -gcutil pid 采样间隔 采样次数
2、场景执行,未达到期望TPS值,资源使用未达到瓶颈,且出现大量超时报错
原因分析:
短连接导致的端口被完全占用以及线程配置的最大线程数较小;
排查方法:
查看服务器最大线程数的配置,调整数值,查看处理能力是否提升;
3、场景执行,多用户并发,数据库服务器CPU使用率高,达到100%;
问题描述:
金融统计数据检核平台-质量问题明细查询】交易,60用户并发,最大处理能力15笔/秒,响应时间5秒,应用服务器CPU使用率30%,数据库服务器CPU使用率100%;
慢sql:
select count(*) as col_0_0 from t_dqs_facts t where 1=1 and t.ques_id='Iadja24dhjdh0edkjsdhjsd' and t.bz_column_val='CNY' and t.key_column_val='储蓄存款_人民币' and (t.org_column_val in ('323237','32323')) and t.rule_code = 'DQR_HAWR_808908';
单笔查询时间267ms
问题分析:
数据库sql执行慢,缺少相关索引;
解决方法:
1)为t_dqs_facts表查询条件中的字段,添加单个索引,处理能力没有变化;
2)为t_dqs_facts表查询条件中的字段,添加联合索引,alter table t_dqs_facts add index fact_index(ques_id,rule_code,org_column_val,bz_column_val,key_column_val);优化出后,40用户并发达到最大处理能力,最大处理能力72笔/秒,平均响应时间0.543秒,数据库服务器CPU使用率51.31%;处理能力优化4.8倍,慢sql单笔执行时间8ms;