GitLab 12.9のUnicornをPumaに変更する


毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。

0. はじめに

GitLab 12.9がリリースされました。

GitLab 12.9 released with Vault App, Code Quality Reports and Group Deploy Tokens | GitLab https://about.gitlab.com/releases/2020/03/22/gitlab-12-9-released/

これまで、UnicornがGitLabのWebサーバーとして利用されてきました。しかし、バージョン12.9からUnicornから、Pumaを利用できるようになりました。

メモリーは40%削減され、UnicornのマルチプロセスからPumaのマルチスレッドで動かすことができます。

1. なぜ、Pumaにするの?

Switching to Puma | GitLab
https://docs.gitlab.com/ee/administration/operations/puma.html

Pumaの方がマルチスレッドで動かす事ができるので、MRI Ruby will release the GVL (Global VM Lock) を避けることができ、多くのリクエストを裁くことができます。

2. 今回の設定の前提

omnibusインストールされているGitLabです。

3. Pumaに設定を変更する

Puma | GitLab
https://docs.gitlab.com/omnibus/settings/puma.html

unicorn['enable'] = false
puma['enable'] = true

4. reconfigureする

reconfigureコマンドを動かします。

sudo gitlab-ctl reconfigure

実行結果の最後の方は以下の通りです。

Warnings:
The version of the running postgresql service is different than what is installed.
Please restart postgresql to start the new version.

sudo gitlab-ctl restart postgresql

gitlab Reconfigured!

と出ていれば大丈夫でしょう。

5. unicornが動いていないのを確認する

# ps axwwu | grep unicorn
root     15293  0.0  0.0  12940   968 pts/0    S+   19:43   0:00 grep --color=auto unicorn

6. 変更してどうだったか

感覚的にしかわかりませんが、キビキビ動くように思います。