系统性能优化-HL

如何发现?

apm发现慢请求 找到具体的路径url

如何定位?

观察那些有可能慢的方法,打日志,本地运行,有条件的(admin可以连生产只读数据库),没条件(crm造数据)

定位到具体哪个步骤慢

如何解决?

异步 程序 缓存 Sql

一.优化递归算法

RecursionUtil 为了适应不同的类,不同的属性

/adminDept/queryDeptTree

 

 每次都new实例

 针对优化 (简化了一些,有针对性)

二. 简化明确业务逻辑

/crmCustomer/workbenchData

页面数字的显示

原版本---(走的是原来查询内容的接口)没有区别身份全量查询,sql也是全字段查询

优化后 区分身份查询 去掉不必要的sql 只查id

三. 明确业务逻辑

SendMsgToBp2Job TaskSendMsgJob

这两个方法都调用admin的VX发消息的接口

发现5万的数据只有一万条数据的负责人是关注了的

SendMsgToBp2Job

原来

现在 只查关注的

//优化后

WxMpProperties.MpConfig mpConfig = wxMpProperties.swithWxConfig(useAppId);

//当站长标记劳动者为【面试未通过】时,向劳动者的负责bp推送公众号模板消息,提醒bp做后续处理(筛选没有关注公众号的人)

List<CrmCustomer> list =iCrmCustomerService.querySendMsgToBp2(mpConfig.getApplicationName());

四.综合优化

获取标签的接口

本地不慢 打日志看时间不慢

一.带宽

二.返回的json压缩 去掉无用字段

~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

五.报表优化

运营分析系统:招聘战力

统计背景:时间控件,输入当月,劳动者状态统计趋势,1-30号,每天数据

查询 wk_crm_customer 不同时间段,不同的统计维度;创建时间、上岗时间、入职时间、离职时间;推荐人(乙方公司下所有员工)

1.红色长方形耗时最长,接口拆分;

2.时间分段,推荐人 union all ,一次行查询整个时间段(整月),不同的时间段匹配在统计

3.不同时间字段统计,串行;优化为并行

六.增加缓存

适当的增加缓存(基于feign-client 设置redis缓存)

亿级系统的Redis缓存如何设计???

排查MYSQL CPU高

show variables like "%slow_query_log%" ;

SHOW PROCESSLIST;

SHOW FULL PROCESSLIST;

SHOW VARIABLES LIKE '%max_connections%';

SHOW STATUS LIKE '%Connection%';

-- 当前连接数

show global status like 'Threads_connected';

可能存在短时间循环调用queryDB SQL语句量突然增加的情况。

可能存在多线程调用 queryDB SQL的情况。

可能存在慢SQL 被调用的情况。

总结优化方法18摸

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值