性能优化之日志打印造成服务内存使用异常

服务器资源使用极其不均匀(接手的老系统,代码不是我写的,我负责擦屁股)

资源使用情况,cpu使用很低,但是内存使用很高造成资源浪费严重,没办法缩减服务器资源


极端情况到达了200个POD,由于内存的使用,造成无法弹性缩容


服务耗时


资源占用情况

内存使用分析,占用的非常离谱,到达了28%


CUP占用也很高,log+fastjsontostring 加起来也快占了将近20的CPU




代码分析,从火焰图可看出,代码是AsyncCTRAlgoController中的日志打印,也是图中所示代码,打印日志和对象转json


日志耗时分析

个别服务耗时严重


TP99不高的耗时占比也非常高



日志体积,非常非常的大,一次情况极限是有200个订单



优化方案,异步打印+10%抽样打印日志


技术选型

ThreadLocalRandom.current().nextInt(100)并发效率更高

上线后结果

接口耗时


资源使用


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。