環境
- CPU1コアのマシン
- Ubuntu 18.04.5 LTS
- Docker version 20.10.6, build 370c289
事象
Dockerのコンテナを起動しているホストOSで、CPU使用率が100%になっており、htopコマンドやらで調べると、agetty というプロセスが100%近くCPU食ってる。
ホストマシンが1コアのマシンでしか見たこと無い現象なので、マルチコアのマシンだとどうなるか知らぬ。
でもCPUはagettyが結構食うはず。
原因
よくわからんがDockerのコンテナを矢継ぎ早に起動しちゃうとログインプロンプトのプロセス(agetty)がCPU食っちゃう?(てきとー
agettyとは
agettyはgettyの Linux バージョンです。「get tty」の略である getty は、ホスト コンピューター上で実行される Unix プログラムであり、物理端末または仮想端末を管理してマルチユーザー アクセスを可能にします
agetty command in Linux with Examples - GeeksforGeeksA Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/c...
Qiitaの記事に書いていただいている原因↓
完全に予想ではあるが、コンテナ立ち上げ時にコンテナに対してagettyのログインプロンプトが割り当てられる。
割り当てが完了し、排他制御が出来るまでに次のコンテナが立ち上がるとagettyが重複して割り当てらる事によってプロセスが暴走している(ように見える)。
Dockerを利用していてagettyがCPU使用率を専有してしまったら - QiitaDockerを利用していていると稀に遭遇する問題を書き起こしてみました。正直何が原因で何をすれば改善出来るのかはっきりとわかっておりません。自分の備忘録的な意味合いが強い記事ですがもしかしたら現…
対処:gettyサービスを停止する
立ち上がっているgettyサービスを確認する。
systemctl list-units *getty*
↑で起動しているサービスを軒並み停止していく
sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl stop system-serial\x2dgetty.slice
蛇足
どうでもいいけど、検索するときにagettyじゃなくて、aggety
って間違ってやっちゃいそうになりがちなワシ。
Google先生が補正してくれるのでタスカルワ~。
コメント