Puma

注:GitLab 13.0から、Pumaがデフォルトのウェブサーバーとなり、Unicornはデフォルトでは無効になっています。

Pumaの設定

  1. 適切な Puma ワーカーとスレッドの設定を決定します。 詳細は Pumaの設定を参照してください。
  2. ユニコーンのカスタム設定を同等のプーマ設定に変換します(該当する場合)。 詳細については、ユニコーンの設定をプーマに変換するを参照してください。
  3. 複数ノードのデプロイでは、ロードバランサが準備チェックを使用するように設定します。
  4. 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秒のタイムアウトが使用されます。 この制限は設定できません。