Puma
注:GitLab 13.0から、Pumaがデフォルトのウェブサーバーとなり、Unicornはデフォルトでは無効になっています。
Pumaの設定
- 適切な Puma ワーカーとスレッドの設定を決定します。 詳細は Pumaの設定を参照してください。
- ユニコーンのカスタム設定を同等のプーマ設定に変換します(該当する場合)。 詳細については、ユニコーンの設定をプーマに変換するを参照してください。
- 複数ノードのデプロイでは、ロードバランサが準備チェックを使用するように設定します。
-
GitLab を再設定して、上記の変更を有効にします。
sudo gitlab-ctl reconfigure
詳細については、Pumaのドキュメントを参照してください。
Unicornの設定をPumaに変換
Unicornを使用していてPumaに切り替えたい場合、サーバーの設定は自動的に引き継が_れません_。 以下の表は、Unicornのどの設定キーがPumaの設定キーに対応し、どの設定キーに対応するものがないかをまとめたものです。
Unicorn | Puma |
---|---|
unicorn['enable']
| puma['enable']
|
unicorn['worker_timeout']
| puma['worker_timeout']
|
unicorn['worker_processes']
| puma['worker_processes']
|
該当なし | puma['ha']
|
該当なし | puma['min_threads']
|
該当なし | puma['max_threads']
|
unicorn['listen']
| puma['listen']
|
unicorn['port']
| puma['port']
|
unicorn['socket']
| puma['socket']
|
unicorn['pidfile']
| puma['pidfile']
|
unicorn['tcp_nopush']
| 該当なし |
unicorn['backlog_socket']
| 該当なし |
unicorn['somaxconn']
| 該当なし |
該当なし | puma['state_path']
|
unicorn['log_directory']
| puma['log_directory']
|
unicorn['worker_memory_limit_min']
| 該当なし |
unicorn['worker_memory_limit_max']
| puma['per_worker_max_memory_mb']
|
unicorn['exporter_enabled']
| puma['exporter_enabled']
|
unicorn['exporter_address']
| puma['exporter_address']
|
unicorn['exporter_port']
| puma['exporter_port']
|
プーマ・ワーカー・キラー
デフォルトでは、Puma Worker Killerはワーカーがメモリ制限を超えると再起動します。 さらに、Puma Worker のローリング再起動は 12 時間ごとに実行されます。
メモリ制限の設定を変更するには
puma['per_worker_max_memory_mb'] = 850
ワーカータイムアウト
Unicornとは異なり、puma['worker_timeout']
設定は最大リクエスト時間を設定しません。 Pumaが有効な場合、60秒のタイムアウトが使用されます。 この制限は設定できません。