问问大家一个关于 docker exec 进到容器执行命令之前和执行完命令后退出都要卡 10s 以上的问题

2022-07-07 22:24:49 +08:00
 zhoudaiyu
先说一下环境:容器集群版本 Openshift Container Platform 3.11 ,Kubelet 1.12 ,docker 1.13.1 。每台 node 约运行 60 个 pod (约 120 个 docker 容器),运行一段时间后(几天到几个月不确定),通过 docker exec 进到容器执行命令,就得在执行前等 10 秒以上才能进去,执行命令很快,退出时,还得等 10 秒才能退出,就像卡住了一样,ctrl-c 也停不下来。exec 命令执行期间,docker 没有任何异常日志。现在已经通过 nsenter 进到进程命名空间( nsenter )和通过 docker API 直接和 dockerd 通信(均正常)排除了一部分干扰因素。唯一解决方法就是重启 dockerd ,别无他法。求大家给个排查的思路(或者解决方案),谢谢!
1388 次点击
所在节点    Docker
10 条回复
corvofeng
2022-07-07 23:33:12 +08:00
dem0ns
2022-07-07 23:42:01 +08:00
@corvofeng 我也有个相似的域名,也是 my+学校缩写.cn
zhoudaiyu
2022-07-07 23:49:59 +08:00
@corvofeng 谢谢大佬,不过这个感觉和 docker exec 慢不太一样呢,其实容器里面进程都跑得好好的,只是 exec 慢了。其他的 docker ps/inspect 啥的都正常的
corvofeng
2022-07-07 23:59:31 +08:00
@zhoudaiyu 我其实是想确认下内核速度是不是正常, 你可以多跑几次 time 看看
zhoudaiyu
2022-07-08 00:12:35 +08:00
@corvofeng 好的,明天上班我试完了告诉你哦
DAPTX4869
2022-07-08 08:52:37 +08:00
@corvofeng #1 貌似图裂了
zhoudaiyu
2022-07-08 09:10:23 +08:00
@corvofeng #1 按照你说的查了一下,time cat /proc/slabinfo 平均大约 0m0.07s 的样子,应该还算挺快的
corvofeng
2022-07-08 09:10:34 +08:00
@DAPTX4869 #6 证书问题, 我修了哈
corvofeng
2022-07-08 09:33:04 +08:00
@zhoudaiyu #7 你是用 root 用户读的吧, 普通用户没有权限读这个信息的

docker exec 进出容器慢, 那 kubectl exec 会慢吗?

或者直接在慢的机器上, 试试 dropcache 看看能不能恢复吧

sync && echo 3 > /proc/sys/vm/drop_caches

这种缓存缓慢释放, 可能会过几个小时才好
zhoudaiyu
2022-07-08 11:14:07 +08:00
@corvofeng #9 同样会慢,因为最终还是通过 docker exec 进到容器中的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/864787

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX