正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLabのインストール要件

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

GitLabには、固有のインストール要件があります。

ストレージ

必要とされるストレージ容量は、主にGitLabに格納するリポジトリのサイズによって異なります。ガイドラインとして、最低でも、すべてのリポジトリの合計と同じくらいの空き容量が必要です。

Linuxパッケージのインストールには、約2.5 GBのストレージ容量が必要です。ストレージの柔軟性を高めるには、論理ボリューム管理を通じてハードドライブをマウントすることを検討してください。応答時間を短縮するために、7,200 RPM以上のハードドライブ、またはソリッドステートドライブが必要です。

ファイルシステムのパフォーマンスはGitLabの全体的なパフォーマンスに影響を与える可能性があるため、ストレージにクラウドベースのファイルシステムを使用することは避けてください。

CPU

CPU要件は、ユーザー数と予想されるワークロードによって異なります。ワークロードには、ユーザーのアクティビティー、自動化とミラーリングの使用、リポジトリのサイズが含まれます。

最大で1秒あたり20リクエストまたは1,000ユーザーの場合、8 vCPUが必要です。それ以上のユーザー数またはワークロードについては、リファレンスアーキテクチャを参照してください。

メモリ

メモリ要件は、ユーザー数と予想されるワークロードによって異なります。ワークロードには、ユーザーのアクティビティー、自動化とミラーリングの使用、リポジトリのサイズが含まれます。

最大で1秒あたり20リクエストまたは1,000ユーザーの場合、16 GBのメモリが必要です。それ以上のユーザー数またはワークロードについては、リファレンスアーキテクチャを参照してください。

場合によっては、GitLabは最低8 GBのメモリで実行できます。詳細については、メモリ制約のある環境でGitLabを実行するを参照してください。

PostgreSQL

PostgreSQLは、サポートされている唯一のデータベースであり、Linuxパッケージにバンドルされています。外部のPostgreSQLデータベースも使用できますが、その場合は正しく設定する必要があります

ユーザー数に応じて、PostgreSQLサーバーには以下が必要です:

  • ほとんどのGitLabインスタンスでは、最低5~10 GBのストレージ
  • GitLab Ultimateの場合、最低12 GBのストレージ(1 GBの脆弱性データをインポートする必要があります)

次のバージョンのGitLabでは、対応するPostgreSQLバージョンを使用してください:

GitLabバージョンHelmチャートバージョンPostgreSQLの最小バージョンPostgreSQLの最大バージョン
18.x9.x16.517.x(GitLab 17.10以降に対してテスト済み
17.x8.x14.1416.x(GitLab 16.10以降に対してテスト済み
16.x7.x13.615.x(GitLab 16.1以降に対してテスト済み
15.x6.x12.1014.x(GitLab 15.11に対してのみテスト済み)、13.x

PostgreSQLのマイナーリリースには、バグとセキュリティの修正のみが含まれます。PostgreSQLで既知のイシューを回避するため、常に最新のマイナーバージョンを使用してください。詳細については、イシュー364763を参照してください。

指定されているバージョンよりも新しいPostgreSQLのメジャーバージョンを使用するには、新しいバージョンがLinuxパッケージにバンドルされているかどうかを確認してください。

また、一部の拡張機能をすべてのGitLabデータベースに読み込む必要があります。詳細については、PostgreSQL拡張機能を管理するを参照してください。

GitLab Geo

GitLab Geoは、Linuxパッケージまたは検証済みのクラウドプロバイダーを使用してGitLabをインストールする必要があります。他の外部データベースとの互換性は保証されていません。

詳細については、Geoの実行要件を参照してください。

ロケールの互換性

glibcでロケールデータを変更すると、PostgreSQLデータベースファイルは、異なるオペレーティングシステム間では完全な互換性がなくなります。インデックスの破損を回避するには、以下の場合にロケールの互換性を確認してください:

  • サーバー間でバイナリPostgreSQLデータを移動する。
  • Linuxディストリビューションをアップグレードする。
  • サードパーティのコンテナイメージを更新または変更する。

詳細については、PostgreSQLのオペレーティングシステムのアップグレードを参照してください。

GitLabスキーマ

GitLab、GeoGitaly Cluster (Praefect)、またはその他のコンポーネント専用のデータベースを作成または使用する必要があります。以下に従う場合を除き、データベース、スキーマ、ユーザー、またはその他のプロパティを作成または変更しないでください:

  • GitLabドキュメントの手順
  • GitLabサポートまたはエンジニアの指示

主なGitLabアプリケーションは、3つのスキーマを使用します:

  • デフォルトのpublicスキーマ
  • gitlab_partitions_static(自動作成)
  • gitlab_partitions_dynamic(自動作成)

Railsデータベースの移行中に、GitLabはスキーマまたはテーブルを作成または変更する場合があります。データベースの移行は、GitLabコードベースのスキーマ定義に対してテストされます。スキーマを変更すると、GitLabのアップグレードが失敗する可能性があります。

PostgreSQLの設定

外部で管理されるPostgreSQLインスタンスに必要な設定を次に示します。

調整可能な設定必要な値詳細情報
work_mem最小8 MBこの値は、Linuxパッケージのデフォルトです。大規模なデプロイメントで、クエリが一時ファイルを作成する場合は、この設定を増やす必要があります。
maintenance_work_mem最小64 MB大規模なデータベースサーバーの場合は、より多くの容量が必要です。
max_connections最小400お使いのGitLabコンポーネントに基づいて計算します。詳細なガイダンスについては、Tune PostgreSQLページを参照してください。
shared_buffers最小2 GB大規模なデータベースサーバーの場合は、より多くの容量が必要です。Linuxパッケージのデフォルトは、サーバーRAMの25%に設定されています。
statement_timeout15000~60000ステートメントのタイムアウトにより、ロックによる制御不能イシューや、データベースが新しいクライアントを拒否するのを回避できます。15~60秒(15000~60000ミリ秒)の範囲の値を使用してください。1分はPumaラックのタイムアウト設定と一致します。
hot_standby_feedbackon複数のノードでデータベースロードバランシングが構成されている構成では、すべてのレプリカノードでhot_standby_feedbackを有効にして、ラグの発生を防ぐようにしてください。

サーバー上のすべてのデータベースではなく、特定のデータベースに対して一部のPostgreSQL設定を設定できます。

  • 同じサーバー上で複数のデータベースをホスティングする場合、特定のデータベースに設定を制限できます。
  • 設定の適用場所に関するガイダンスについては、データベース管理者またはベンダーにお問い合わせください。
  • GCP Cloud SQLの場合、特定のデータベースまたはユーザーに対してstatement_timeoutを設定できますが、as a database flag(データベースフラグとして)は設定できません。例: ALTER DATABASE gitlab SET statement_timeout = '60s';

Puma

推奨されるPuma設定は、インストールによって異なります。デフォルトでは、Linuxパッケージは推奨設定を使用します。

Pumaの設定を調整するには:

  • Linuxパッケージについては、Puma設定を参照してください。
  • GitLab Helmチャートについては、webserviceチャートを参照してください。

ワーカー

推奨されるPumaワーカーの数は、主にCPUとメモリの容量によって異なります。デフォルトでは、Linuxパッケージは推奨される数のワーカーを使用します。この数の計算方法について詳しくは、puma.rbを参照してください。

ノードのPumaワーカー数は2つ以上でなければなりません。たとえば、ノードには以下が必要です:

  • 2 CPUコアと8 GBのメモリに対して2個のワーカー
  • 4 CPUコアと4 GBのメモリに対して2個のワーカー
  • 4 CPUコアと8 GBのメモリに対して4個のワーカー
  • 8 CPUコアと8 GBのメモリに対して6個のワーカー
  • 8 CPUコアと16 GBのメモリに対して8個のワーカー

デフォルトでは、各Pumaワーカーは1.2 GBのメモリに制限されています。/etc/gitlab/gitlab.rbこの設定を調整できます。

十分なCPUおよびメモリ容量がある場合は、Pumaワーカーの数を増やすこともできます。ワーカー数を増やすと、応答時間が短縮され、並列リクエストを処理する能力が向上します。テストを実行して、インストールに最適なワーカーの数を確認します。

スレッド

推奨されるPumaスレッド数は、システムメモリの合計によって異なります。ノードは以下を使用する必要があります:

  • 最大2 GBのメモリを持つオペレーティングシステムの場合は1つのスレッド
  • 2 GBを超えるメモリを持つオペレーティングシステムの場合は4つのスレッド

スレッドをそれ以上増やすと、過度のスワップが発生し、パフォーマンスが低下します。

Redis

Redisは、すべてのユーザーセッションとバックグラウンドタスクを保存し、平均してユーザーあたり約25 kBを必要とします。

GitLab 16.0以降では、Redis 6.xまたは7.xが必要です。サポート終了日について詳しくは、Redisドキュメントを参照してください。

Redisでは:

  • スタンドアロンインスタンスを使用します(高可用性の有無にかかわらず)。Redisクラスターはサポートされていません。
  • 必要に応じて削除ポリシーを設定します。

Sidekiq

Sidekiqは、バックグラウンドジョブにマルチスレッドプロセスを使用します。このプロセスでは、最初は200 MB以上のメモリを消費し、メモリリークが原因で時間とともに増加する可能性があります。

請求対象ユーザーが10,000人を超える非常にアクティブなサーバーでは、Sidekiqプロセスで1 GB以上のメモリを消費する可能性があります。

Prometheus

デフォルトでは、Prometheusとその関連exporterはGitLabをモニタリングするために有効になっています。これらのプロセスは、約200 MBのメモリを消費します。

詳細については、Prometheusを使用したGitLabのモニタリングを参照してください。

サポートされているWebブラウザ

GitLabは、次のWebブラウザをサポートしています:

GitLabがサポートするもの:

  • これらのブラウザの最新の2つのメジャーバージョン
  • サポートされているメジャーバージョンの現在のマイナーバージョン

これらのブラウザでJavaScriptを無効にしてGitLabを実行することはサポートされていません。