画像の拡大縮小

GitLabはサイトのレンダリングパフォーマンスを向上させるためにビルトインのイメージスケーラーを実行しています。デフォルトで有効になっています。

スケーラーの設定

私たちは、大多数のGitLabデプロイで機能するよう、常に適切なデフォルトを設定するよう努めています。しかし、あなたの希望するパフォーマンスプロファイルに最も合うようにイメージのスケーリングを微調整できる設定をいくつか用意しています。

イメージスケーラーの最大数

イメージを再スケーリングすると、Workhorse が動作する同じノード上で実行される追加の短命プロセスが発生します。デフォルトでは、これらのプロセスが同時に実行できる数は、そのマシンまたは VM の CPU コア数の半分に制限されています。

これを固定値に設定することもできます:

  1. /etc/gitlab/gitlab.rb を編集し、以下を追加してください:

    gitlab_workhorse['image_scaler_max_procs'] = 10
    
  2. 変更を有効にするために再設定します:

    sudo gitlab-ctl reconfigure
    

これは、10枚の画像がすでに処理されている場合、11枚目のリクエストは再スケーリングされず、元のサイズで提供されることを意味します。高負荷時でもシステムが利用可能であることを保証するために、この制限を設けることは重要です。

最大画像ファイルサイズ

デフォルトでは、GitLabは最大250kBのサイズのイメージのみをリスケーリングします。これはWorkhorseノードでの過剰なメモリ消費を防ぎ、レイテンシを適切な範囲に保つためです。あるファイルサイズを超えると、元の画像を提供した方が全体的に速くなります。

許容される最大ファイルサイズを下げたり上げたりしたい場合:

  1. /etc/gitlab/gitlab.rb を編集し、以下を追加します:

    gitlab_workhorse['image_scaler_max_filesize'] = 1024 * 1024
    
  2. 変更を有効にするために再設定します:

    sudo gitlab-ctl reconfigure
    

これにより、1MBまでの画像を再スケーリングできるようになります(単位はバイト)。

画像スケーラの無効化

画像のスケーリングを完全にオフにすることもできます。これは、それぞれの機能のトグルをオフに切り替えることで実現できます:

Feature.disable(:dynamic_image_resizing)

機能フラグの扱い方については、機能フラグのドキュメントを参照してください。