• 系统性能优化-HL


    如何发现?

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

     

    如何定位?

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

    定位到具体哪个步骤慢

    如何解决?

    异步 程序 缓存 Sql

    一.优化递归算法

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

    /adminDept/queryDeptTree

     

     每次都new实例

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

    二. 简化明确业务逻辑

    /crmCustomer/workbenchData

    页面数字的显示

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

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

    三. 明确业务逻辑

    SendMsgToBp2Job TaskSendMsgJob

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

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

    SendMsgToBp2Job

    原来

    现在 只查关注的

    1. //优化后
    2. WxMpProperties.MpConfig mpConfig = wxMpProperties.swithWxConfig(useAppId);
    3. //当站长标记劳动者为【面试未通过】时,向劳动者的负责bp推送公众号模板消息,提醒bp做后续处理(筛选没有关注公众号的人)
    4. List<CrmCustomer> list =iCrmCustomerService.querySendMsgToBp2(mpConfig.getApplicationName());

    四.综合优化

    获取标签的接口

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

    一.带宽

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

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

    五.报表优化

    运营分析系统:招聘战力

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

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

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

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

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

    六.增加缓存

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

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

    排查MYSQL CPU高

    1. show variables like "%slow_query_log%" ;
    2. SHOW PROCESSLIST;
    3. SHOW FULL PROCESSLIST;
    4. SHOW VARIABLES LIKE '%max_connections%';
    5. SHOW STATUS LIKE '%Connection%';
    6. -- 当前连接数
    7. show global status like 'Threads_connected';

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

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

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

  • 相关阅读:
    自动驾驶:2022 apollo day 观后感(一)
    6.14作业
    NSSCTF中的pop、babyupload、cve版本签到、奇妙的MD5、easy_html
    pgr_createTopology
    [附源码]Python计算机毕业设计Django“小世界”私人空间
    android-加壳加固
    golang channel 学习笔记
    基于java多特蒙德周边商城系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
    教你如何与同事相处
    第一章 教育基础(03 教育目的与教育制度)
  • 原文地址:https://blog.csdn.net/chen978616649/article/details/126048910