LXDコンテナで GitLab を動かしているが、ちょいちょいストレージ応答が固まってしまう。
本日も GitLab の sidekick、redis が重くなってしまい応答が無くなるという事が起きた。これはちょいちょい週1くらいの頻度で起きている問題で、毎日のバックアップに起因していると思われるのだが、どうにか回避出来ないものか...。
- 問題箇所かもしれないところ(上から怪しい順)
- sidekiq
- redis
- puma
GitLab を動かしている環境について
GitLab の構成については公式ドキュメントのチャートがある。全然ワカランくらいに多くのミドルウェアで構成されている。で、宅サバでは GitLab Omnibus のEE版で構築している。
宅サバ環境は、こちら図のようにLXDコンテナにGitLab環境をインストールしている。
2台の Ubuntu VM 上で LXDコンテナ環境を用意しているが、これらはクラスタ化はしておらず独立させていて、スクリプトでイメージバックアップは取っているという状態。
事象の発生状況
ある時、気付くとGitLabのウェブUIの応答が無くなっていて、それに気付いてGitLabマシンにSSHするとSSHに対する応答も無いという状態になる。
LXDホスト上で top コマンドをみた時の状況
- ディスクIOでのロックがかかっているように見える...
疑ったこと(順に...
問題の切り分けとして試したこと
Windows の「高速シャットダウン」の無効化
バックアップスクリプトの停止
ストレージイメージを複数にしてコンテナを移動
- 疑義ポイント
一時的な解決
現状: 何の役にも立たない結論(過去時点)
- バックアップスクリプトの停止
- lxc コマンドで stop && copy && start をしているところのどこかで転けてしまっていそうである。
- GitLabコンテナが完全に停止していない状態で再startしているとかなのかなぁ?と妄想している。
- バックアップ処理を止めると、GitLabコンテナが固まることは起きていないように見える...。
現状その2: 何の役にも立たない結論(現時点)
- GitLab omnibus のアップグレード
- バックアップを停止してから暫く経って、ウェブUIを操作中にGitLabが固まる事が起きている。
- 以前と異なるのは、我慢して待っていれば自然復旧するという点にある。
- 固まった時の簡易な様子としては CPU Load Ave. 30以上、io wait 96% といういつもの状態になる。
- 15分ほど放置すると、CPU Load Ave. は通常通りの 1.0 以下に下がってくる。こうなるとウェブUIの操作もスムーズに出来るように戻ってしまう。
- この問題も深追いすると面倒そうなので、GitLabのアップデートが降ってくるまで放置することにした。
- GitLab 13.6.2(?)だったかな、では再現せずに安定している。