Docker故障一例:CPU使用率高

 今天同事告知Docker Server的CPU使用率很高,因為系統是Ubuntu,所以用top檢查一下,結果發現是docker佔用CPU很高。

由於之前並沒有這樣的情況,也沒有增加或更動Docker Container的設定,而且Container上提供使用者的服務都還是正常。

先試著連上Container看看,結果出現下列的錯誤,一連試了這台Docker Server底下的四個Container,都是一樣的情形
[root@FS-TEST ~]# docker exec -it 94ee8a1881a1 /bin/bash

connection error: desc = "transport: dial unix /var/run/docker/containerd/docker-containerd.sock: connect: connection refused": unknown


連關掉Container也沒有辦法
[root@FS-TEST ~]# docker stop 94ee8a1881a1

Error response from daemon: cannot stop container: 94ee8a1881a1: Cannot kill container 94ee8a1881a1b59286282cc14790abb8806a4b3483b9fc7442e411aad99babc0: connection error: desc = "transport: dial unix /var/run/docker/containerd/docker-containerd.sock: connect: connection refused": unknown

因為docker container已經無法連上,也無法關掉,所以只好強制重開Dokcer的核心服務
[docker_server]# service docker restart

重開完docker後,container依舊是無法連上,但是container上的服務已經停掉,而container也可以成功關掉了。
[docker_server]# docker stop 94ee8a1881a1 

接著重新啟動container與服務,終於都恢復正常了。

不過,我是沒有找到為什麼Docker會佔用CPU的真正原因,因為趕著讓服務正常,所以也就沒有辦法慢慢檢查了。