linux 系统下的服务性能优化

背景

在我们服务运行环境由物理机切换到云上后,发现服务性能有大幅下降(时延有较大的上升)。

分析

首先是服务的性能变化和上云有关。然后分析对比物理机和云的参数对比。比如外部竞争;云的宿主机系统版本;perf stat分析内存情况等。
1、外部竞争:因为云上容器是和其他容器混部,难免会受到其他容器的影响。
2、云宿主机系统版本:虽然容器的linux版本和物理机相同,但是涉及底层调度还是由宿主机系统版本决定的。比如centos7对于并发需求比较高的场景,不如centos8;这是因为centos8对于并发支持更好。
3、perf stat分析内存情况:分析物理机和云上容器的cache miss。

本次性能优化主要是cache miss导致

原因:物理机和云上容器的的LLC cache miss率 差了10%以上。
深层原因:因为我们使用的云 没有将 LLC 根据容器进行隔离。
1、进程在node间迁移导致远程内存访问。
2、进程在node间迁移导致LLC miss开销
3、容器的内外部争抢,不仅会因为调度延迟影响性能,但也会被其他容器进程频繁的冲刷缓存
解决方案:1、cpuset;2、numa;3、LLC隔离

资料:
https://blog.csdn.net/qq_24343177/article/details/127139050
https://blog.csdn.net/a29562268/article/details/127605240
https://mp.weixin.qq.com/s?__biz=MzI2NDA0NDM1MA==&mid=2650111444&idx=1&sn=1d14f6396eb43d8f7d47a324240d30f2&chksm=f2b37785c5c4fe93d269a1c128c08c65de8daab68b34f68ae480bc0292808b91a4a72d953f5c&scene=27
https://www.bbsmax.com/A/rV57XvLEdP/

posted @   小海哥哥de  阅读(48)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示