今天同事告知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的真正原因,因為趕著讓服務正常,所以也就沒有辦法慢慢檢查了。