驻场服务 资源优化配置
1:协助解决排查性能问题 2:排查隐患问题 3:上线之后的保障 性能问题排查
性能问题大部分集中在和mysql相关的调用,以及redis使用相关的问题,mogodb相关问题,内存问题,sso问题等等。
性能压测时以及驻场这段时间具体遇到的问题如下 mysql相关
1:mysql连接池打满,导致mysql挂掉,后来排查下来基本和慢查询有关系,慢查询个数和连接个数是成正比的。后面找到慢查询,逐个优化
2:mysql字段没做索引,增加索引/增加联合索引。
3:直接调用的接口包含很多数据和调用,其实不需要那么多数据和调用,重写接口,免去不必要的调用
4:类型语句
update`xxx`setjoin_status='Approved',latest_updated_user_id='ba2c0000-00ce-52-f4ba-08d7fb3cb569',latest_updated_date=NOW()whereidin(selectuser_idfromxxxwhereidin('ba2c0000-00ce-52-8dd3-08d7fd9e80da'));
这种两层in的语句效率特别差,执行时间要上百秒,咨询dba之后,建议使用join,改为join之后效率提升。
5:发现有update语句有慢查询,最后发现是对一条记录每秒发送了大量的update请求,导致了行锁,最后对压测用例进行修改,随机选择key。
6:一个sql查询出来的结果有几百万条,查询需要100多秒(索引也都做了),后面推荐改为分页查询/改为为limit10;
7:myslqwhere条件顺序不对导致影响sql性能,如:wherea=xxandb=yy;如果a=xx的区分度很低,这条sql性能就不会很高,需要将b=yy放到where条件的前面。
其他db相关
1:乱用redis,value大小有1.8M,导致redis挂掉,还有使用了zset,value有好几百兆,居然还有这种的。。。。。。
2:mogodb字段没做索引,导致全表扫描,查询需要100多秒,导致服务不可用,后续mogodb加上索引即可(问题是压测环境已经加了,居然生产环境没加。。。。。)
3:mogodb连接池打满的问题,调整mongodb客户端字符串参数minPoolSize=0,连接基本降低下来了(但是过程挺曲折,中间做了多次调整参数,最后才发现这个参数有效)。
4:es性能一直不达标,经过我们的es专家排查,发现是做了10个索引,每个索引5个分片。
5:sso压测,使用非集群版的时候redis会cpu消耗非常高,
想换为集群版来解决该问题,但是发现使用了redis事务,集群版不支持事务,后来修改开源源码,将事务部分代码改掉
————————————————
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务