读懂这一篇,集群节点不下线( 十 )
分析发现 , runC 停在了向带有 org.free 字段的 dbus 写数据的地方 。 那什么是 dbus 呢?在 Linux 上 , dbus 是一种进程间进行消息通信的机制 。
2. 原因并不在 Dbus
我们可以使用 busctl 命令列出系统现有的所有 bus 。 如下图 , 在问题发生的时候 , 我看到客户集群节点 Name 的编号非常大 。 所以我倾向于认为 , dbus 某些相关的数据结构 , 比如 Name 耗尽了引起了这个问题 。
Dbus 机制的实现 , 依赖于一个组件叫做 dbus-daemon 。 如果真的是 dbus 相关数据结构耗尽 , 那么重启这个 daemon , 应该是可以解决这个问题 。 但不幸的是 , 问题并没有这么直接 。 重启 dbus-daemon 之后 , 问题依然存在 。
在上边用 strace 追踪 runC 的截图中 , 我提到了 , runC 卡在向带有 org.free 字段的 bus 写数据的地方 。 在 busctl 输出的 bus 列表里 , 显然带有这个字段的 bus , 都在被 systemd 使用 。 这时 , 我们用 systemctl daemon-reexec 来重启 systemd , 问题消失了 。
推荐阅读
- 地下城堡|《代号:破晓》官网“暗藏”剧情,你都读懂了吗?
- |开始·这是一个开始?开始
- 北凉悍刀行|这是一篇超详细的《北凉悍刀行》手游攻略
- 打野|王者荣耀:S25赛季打野需要注意什么?读懂这篇攻略,轻松上分
- 小智|《宝可梦》与火系御三家的对战,小智靠逆属性赢得对战胜利?
- 剑网3|剑三史上开车最离奇的外观,只因一篇818,便让黄牛高价囤货
- 地下城与勇士|DNF:零氪与充钱的差距到底有多大?这一篇文章将颠覆你的认知!
- 我的世界|我的世界:没有女朋友?那还不看过来,一篇文章教你找老婆
- 地下城与勇士|书荒是不可能的,这辈子都不可能书荒(DNF一篇)
- s5|一篇文章彻底玩懂云顶之弈S5赛季!轻松玩会所有阵容!