- オペレーションシステム
- ソフトウェア要件
- Redisのバージョン
- ハードウェア要件
- データベース
- プーマの設定
- ユニコーンの労働者
- RedisとSidekiq
- プロメテウスとその輸出業者
- GitLabランナー
- 対応ブラウザ
要件
このページには、サポートされているオペレーティングシステムや、GitLabをインストールして使用するために必要なハードウェア要件に関する有用な情報が含まれています。
オペレーションシステム
対応Linuxディストリビューション
- Ubuntu (16.04/18.04)
- Debian (8/9/10)
- CentOS (6/7/8)
- openSUSE (Leap 15.1/Enterprise Server 12.2)
- Red Hat Enterprise Linux (CentOS のパッケージと手順を使用してください)
- Scientific Linux (CentOS のパッケージと手順を使用してください)
- Oracle Linux (CentOS のパッケージと手順を使用してください)
インストールオプションについては、メインインストールページをご覧ください。
サポートされていないLinuxディストリビューションとUnixライクなオペレーションシステム
- Arch Linux
- Fedora
- FreeBSD
- Gentoo
- macOS
これらのオペレーティングシステムへのGitLabのインストールは可能ですが、サポートされていません。 詳細については、ソースからのインストールガイドと インストールガイドを参照してください。
マイクロソフトWindows
GitLabはLinuxベースのオペレーティング・システム向けに開発されています。 Microsoft Windowsでは動作しませんし、近い将来サポートする予定もありません。 最新の開発状況については、このイシューをご覧ください。 GitLabの実行には仮想マシンの使用をご検討ください。
ソフトウェア要件
Rubyバージョン
GitLabはRuby(MRI) 2.6を必要とします。GitLab 12.2から、Ruby 2.5以下をサポートしなくなりました。
Rubyの標準的なMRI実装を使う必要があります。 私たちはJRubyと Rubiniusを愛用していますが、GitLabにはネイティブの拡張機能を持ついくつかのGemsが必要です。
囲碁バージョン
Goの最低バージョンは1.13です。
git バージョン
GitLab 13.1より:
- git 2.25.x以降が必要です。
- git 2.27.x以降を推奨します。
Node.jsのバージョン
GitLab 12.9からは、node.js 10.13.0以降のみをサポートし、node.js 8のサポートは終了しました(node.js 6のサポートはGitLab 11.8で終了しました)。
より高速なNode 12.xをお勧めします。
GitLabはフロントエンドのアセットをコンパイルするためにwebpackを使用しており、最低バージョンのNode.js 10.13.0が必要です。
どのバージョンを実行しているかは、node -v
で確認できます。v10.13.0
よりも古いバージョンを実行している場合は、新しいバージョンにアップデートする必要があります。Node.js のウェブサイトでは、コミュニティがメンテナンスしているパッケージからインストールしたり、ソースからコンパイルしたりする手順を見つけることができます。
Redisのバージョン
GitLabはRedis 5.0+を必要とします。 GitLab 13.0から、それ以下のバージョンはサポートされません。
ハードウェア要件
ストレージ
必要なハードドライブの空き容量は、GitLabに保存するリポジトリのサイズに大きく依存しますが、経験則として、すべてのリポジトリを合わせた容量と同じだけの空き容量が必要です。
将来的にハードドライブの容量を柔軟に増やしたい場合は、論理ボリューム管理(LVM)を使用してマウントすることを検討し、必要なときにハードドライブを追加できるようにします。
ローカルハードドライブ以外にも、ネットワークファイルシステム(NFS) プロトコルをサポートするボリュームをマウントすることもできます。このボリュームは、ファイルサーバー、ネットワークアタッチドストレージ(NAS) デバイス、ストレージエリアネットワーク(SAN) または Amazon Web Services(AWS) Elastic Block Store(EBS) ボリュームにある可能性があります。
十分なRAMと最近のCPUがあれば、GitLabの速度は主にハードドライブのシーク時間によって制限されます。高速ドライブ(7200RPM以上)またはソリッドステートドライブ(SSD) 、GitLabの応答性が向上します。
中央演算処理装置
CPUの要件は、ユーザー数と予想されるワークロードに依存します。 ワークロードによっては、正確なニーズはもっと高くなる可能性があります。 ワークロードは、ユーザーのアクティブ度、自動化の使用量、ミラーリング、リポジトリ/変更サイズなどの要因に影響されます(ただし、これらに限定されません)。
以下は、GitLabのユーザー規模の一例に対する推奨最小CPUハードウェアのガイダンスです。
- 4コアは 推奨最小コア数で、最大500ユーザーをサポートします。
- 8コアで最大1000ユーザーをサポート
- リファレンスアーキテクチャのページを参照してください。
メモリー
メモリ要件は、ユーザー数と予想されるワークロードに依存します。 ワークロードによっては、さらに多くのメモリが必要になる場合があります。 ワークロードは、ユーザーのアクティブ度、自動化の使用量、ミラーリング、リポジトリ/変更サイズなどの要因に影響されますが、これらに限定されるものではありません。
以下は、GitLabのユーザー規模の一例に対する推奨最小メモリー・ハードウェアのガイダンスです。
-
4GB RAMが 必要最小メモリサイズで、最大500ユーザーをサポートします。
- 私たちのメモリーチームは、必要なメモリーの削減に取り組んでいます。
- 8GB RAMで最大1000ユーザーをサポート
- リファレンスアーキテクチャのページを参照してください。
上記に加えて、現在十分なRAMがある場合でも、サーバー上に少なくとも2GBのスワップを持つことを一般的にお勧めします。 スワップを持つことで、使用可能なメモリが変更された場合にエラーが発生する可能性を減らすことができます。 また、カーネルのスワップ設定を10
のような低い値に設定することで、RAMを最大限に活用しつつ、必要なときにスワップを利用できるようにすることをお勧めします。
データベース
OmnibusのGitLabパッケージにバンドルされているPostgreSQLは、サポートされている唯一のデータベースです。外部のPostgreSQLデータベースを使用することもできます。 MySQLのサポートはGitLab 12.1で削除されました。MySQL/MariaDBでGitLabを使用している既存のユーザーは、アップグレードする前にPostgreSQLに移行することをお勧めします。
PostgreSQL の要件
PostgreSQLを稼働させるサーバは、ユーザ数にもよりますが、_少なくとも_5~10GBのストレージが必要です。
PostgreSQLの最小バージョンは、開発とテストに使用されているため、以下のバージョンを使用することを強く推奨します。
PostgreSQLの最小バージョン - | - 10.0 | 9.6 12.10 | 11 13.0 | 11 |
また、pg_trgm
拡張機能がすべての GitLab データベースにロードされていることを確認する必要があります。この拡張機能は PostgreSQL のスーパーユーザを使って有効にすることができます。
システムによっては、この拡張機能を利用するために追加パッケージ (例えばpostgresql-contrib
) をインストールする必要があるかもしれません。
GitLab Geoの追加要件
GitLabGeoを使っている場合:
- Omnibusが管理するインスタンスは積極的に開発・テストされているため、Omnibusが管理するインスタンスを実行することを強くお勧めします。 Omnibusが管理しない)ほとんどの外部データベース(例えば、AWS Relational Database Service(RDS))との互換性を目指していますが、互換性を保証するものではありません。
- また、
postgres_fdw
拡張機能がすべての GitLab データベースにロードされていることを確認する必要があります。この拡張機能は PostgreSQL のスーパーユーザを使って有効にすることができます。
プーマの設定
Pumaの推奨設定は、実行するインフラストラクチャによって決まります。 Omnibus GitLabのデフォルトは、推奨のPuma設定になっています。 インストール方法にかかわらず、Puma設定を調整することができます。
Omnibus GitLabを使用している場合は、Puma設定の変更方法を参照してください。 GitLab Helmチャートを使用している場合は、Webserviceチャートを参照してください。
プーマ従業員
推奨労働者数は、以下のうち最も多い人数として計算されます:
2
- CPUコア数 - 1
例えば、4コアのノードには3つのPumaワーカーを設定します。
十分な CPU とメモリ容量があれば、Puma ワーカーの数を増やすことができます。 通常、Puma ワーカーの数を増やすと、アプリケーションの応答時間が短縮され、並列リクエストの処理能力が向上します。 インフラストラクチャに最適な設定を確認するには、テストを実行する必要があります。
プーマの糸
推奨されるスレッド数は、メモリ総量やレガシーRuggedコードの使用など、いくつかの要因に依存します。
- オペレーティング・システムに最大2GBのメモリーが搭載されている場合、推奨スレッド数は
1
。これ以上の値を設定すると、過剰なスワッピングが発生し、パフォーマンスが低下します。 - レガシーRuggedコードが使用されている場合、推奨スレッド数は
1
。 - それ以外の場合、推奨スレッド数は
4
です。RubyMRI のマルチスレッド処理の仕組み上、これ以上の設定はお勧めしません。
ユニコーンの労働者
ほとんどのインスタンスでは、(CPUコア * 1.5) + 1 = Unicornワーカーを使用することをお勧めします。 例えば、4コアのノードは7つのUnicornワーカーを持つことになります。
2GB 以上のマシンの場合、Unicorn ワーカーを最低 3 つ構成することをお勧めします。 1GB のマシンの場合、過剰なスワッピングを防ぐため、Unicorn ワーカーを 2 つだけ構成することをお勧めします。
利用可能なCPUとメモリ容量が十分であれば、Unicornワーカーの数を増やしても問題ありません。通常、これはアプリケーションの応答時間を短縮し、並列リクエストの処理能力を高めるのに役立ちます。
Omnibusパッケージ(デフォルトは上記の推奨)のUnicornワーカーを変更するには、Omnibus GitLabドキュメントのUnicorn設定を参照してください。
RedisとSidekiq
Redisはすべてのユーザーセッションとバックグラウンドタスクキューを保存します。 Redisのストレージ要件は最小限で、1ユーザーあたり約25kBです。 Sidekiqはマルチスレッドプロセスでバックグラウンドジョブを処理します。 このプロセスはRailsスタック全体(200MB以上)で開始しますが、メモリリークにより時間とともに増大する可能性があります。 非常にアクティブなサーバー(アクティブユーザー数10,000人)では、Sidekiqプロセスは1GB以上のメモリを使用する可能性があります。
プロメテウスとその輸出業者
Omnibus GitLab 9.0では、Prometheusとその関連エクスポートがデフォルトで有効になっており、GitLabを簡単かつ詳細に監視できるようになっています。 デフォルトの設定では、これらのプロセスによって約200MBのメモリが消費されます。
PrometheusとそのExporterを無効にしたい場合、またはPrometheusのドキュメントを参照してください。
GitLabランナー
GitLabをインストールする予定のマシンと同じマシンにGitLab Runnerをインストールしないことを強くお勧めします。 GitLab Runnerをどのように設定するか、またCI環境でアプリケーションを実行するためにどのようなツールを使うかによりますが、GitLab Runnerは利用可能なメモリを大量に消費する可能性があります。
GitLab RunnerとGitLab Railsアプリケーションを同じマシンで実行する場合、上記で利用できるメモリ消費量の計算は有効になりません。
特にGitLab Runnerでshell executorを使う予定がある場合は、セキュリティ上の理由から、すべてを1台のマシンにインストールするのは安全ではありません。
CI 機能を使用する場合は、GitLab Runner ごとに別のマシンを使用することをお勧めします。 GitLab Runner サーバーの要件は以下によって異なります:
- GitLab Runner で設定した executorのタイプ。
- ビルドジョブの実行に必要なリソース。
- ジョブ同時実行の設定。
ジョブの性質はユースケースごとに異なるため、最適な設定を得るためには、ジョブの同時実行数を調整して実験する必要があります。
参考までに、GitLab.com の自動スケーリング共有ランナーは、一つのジョブが一つのインスタンスで実行されるように設定されています:
- 1vCPU。
- 3.75GBのRAM。
対応ブラウザ
GitLabは以下のウェブブラウザをサポートしています:
GitLabがサポートしているウェブブラウザは以下の通りです:
- Internet Explorerを除く、現在および過去の主要バージョンのブラウザ。
- サポートされているメジャーバージョンの現在のマイナーバージョン。