S920X00机器CentOS 7.6下大批量容器执行docker exec卡顿

1 S920X00机器CentOS 7.6下大批量容器执行docker exec卡顿

问题现象描述Symptom

**硬件配置:**现场一批400+台S920X00机器,使用CentOS 7.6,内核版本4.14,docker使用OS自带的1.13版本

**问题现象:**现场一台机器上创建大量docker容器,批量执行docker exec命令发生卡顿

关键过程、根本原因分析Key Process and Cause Analysis

关键过程:

(1)实验室部署镜像环境,使用1.13版本docker,创建54个docker容器,运行脚本循环调用docker exec命令,出现docker exec命令卡顿

(2)抓了进程火焰图发现进程在启动时耗时较长(__start),st复现问题后打印卡死进程堆栈发现进程有卡在epoll_wait和futex_wait函数的2种状态,strace抓到也是这两个函数耗时高,增加go pprof、gdb均排查到大量线程卡在runtime.futex中

(3)使用新版本的docker 26.1.4版本测试发现问题解决,定界该问题属于软件问题,已与客户同步

同时发现一个patch与此相关,https://github.com/moby/moby/pull/45625,合入patch可以改善卡顿现象,但是无法完全解决,只能说从docker 1.13到26.1.4中间版本太多了,这个版本是24.06合入的,尝试在24.01上验证也是OK的。

根本原因分析:

docker老版本问题,升级docker版本解决问题,当前问题涉及版本1.13,验证解决问题版本24.01

规避方案为绕过docker形式直接nsenter进入容器

结论、解决方案及效果Conclusion and Solution

结论:

docker老版本问题,升级docker版本解决问题

解决方案:

docker老版本问题,升级docker版本解决问题

规避方案为绕过docker形式直接nsenter进入容器

经验总结、预防措施和规范建议Experience

无

备注Remarks

enter进入容器

经验总结、预防措施和规范建议Experience

无

备注Remarks

无

相关推荐
kkkkkkkkkk_Z几秒前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla4 分钟前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
Lsetea1 小时前
curl下载HTTPS文件报23:证书验证成功与本地写入失败分层排查
linux·https·shell·ssl证书·curl
云计算练习生2 小时前
什么是文件权限?Linux 中 rwx 与数字权限的对应关系
linux·运维·服务器·操作系统·文件权限管理
叼烟扛炮2 小时前
Linux 学习笔记(十三):高效排错利器——GDB 调试器入门
linux·笔记·学习
饿了吃洗衣凝珠2 小时前
red hat day2
linux·运维·服务器
天南散修3 小时前
《802.11-2024》第08讲 · 聚合与块确认:把「一次一帧」变成「一次一批」
linux·网络·wifi·802.11
Dxy12393102163 小时前
Linux 服务器 vi 命令怎么使用
linux·运维·服务器
叼烟扛炮3 小时前
Linux 学习笔记(十五):进程的魔法 fork 与 僵尸孤儿
linux·运维·服务器
第404号工位4 小时前
插上充电宝真能偷光相册?我拆解了一台改装充电宝,实测“恶意充电”的真实攻击链
linux·python·架构