概要
GitLab RunnerやCI/CDパイプラインにはどのVPSが必要ですか?
GitLab Runner用のVPSでは、同時に実行するCIジョブ1つにつき約2つの専用vCPUが必要です。Cobaltfellでは、Fell 2が1ジョブ、Fell 4が2ジョブ、Fell 8が4ジョブを処理します。GitLabのデフォルトのホステッドLinuxランナーは2 vCPUと8 GBのRAMを備えているため(2026年11月2日時点の確認)、同じvCPU数を持つCobaltfellのプランではメモリはその半分となり、メモリを多く消費するビルドには1つ上のサイズが必要です。
1つのVPSで同時に実行できるCIジョブはいくつですか?
CIジョブ1つには2つの専用vCPUと、それに付随するRAMが必要です。ランナーのconcurrent設定によって、そうしたジョブをいくつVPSで共有するかが決まります。 config.tomlでは、concurrentが登録されたすべてのランナーにわたるジョブ数を制限し、limitが登録された1つのランナーのジョブ数を制限します(デフォルトの0は無制限を意味します)。GitLabの要件ページでは、サイジングの基準となる3つの入力として、ジョブのCPU負荷、メモリ使用量、同時実行数を挙げています。
| プラン | vCPU | RAM | 同時実行 | 適合 |
|---|---|---|---|---|
| Fell 2 | 2 | 4 GB | 1 | 一度に1つのパイプライン:個人プロジェクト、または1時間に数回プッシュするチーム |
| Fell 4 | 4 | 8 GB | 2 | 同時に2つの短いジョブ、または4スレッドでの1つの長いビルド |
| Fell 8 | 8 | 16 GB | 4 | 2 vCPUのジョブ4つ、または4 vCPUのジョブ2つ |
| Fell 16 | 16 | 32 GB | 4~8 | マージリクエストが同時に複数のパイプラインを開始するチーム |
GitLabのホステッドランナーのサイズはVPSとどう比較できますか?
GitLabのホステッドLinuxランナーはvCPUあたり4 GBのRAMを提供し、CobaltfellのプランはvCPUあたり2 GBを提供します。 vCPU数は1対1で対応するため、この表はすでにGitLab.comで実行しているパイプラインのサイズを選ぶ直接的な方法となります。現在のマシンのメモリの大部分を使用するジョブには、Cobaltfellのプランを1つ上のサイズにするか、同時ジョブ数を減らす必要があります。
Cobaltfellの2026年11月2日の調査によると、2022年以降のプロセッサ上の専用vCPU 1つは、IDチェックなしで暗号資産を受け付けるホストで月額中央値$8.20でした。したがって、2 vCPUの並列CIジョブ1つあたりのコストはその約2倍になります。
この中央値の背後にあるすべてのホストと価格は、2026年11月に専用CPU VPSのコアあたりのコストはいくらかに掲載しています。
| GitLabホステッドのマシンタイプ | vCPU | RAM | ディスク | 同じvCPUのVPSプラン | そのRAMとNVMe |
|---|---|---|---|---|---|
| saas-linux-small-amd64(デフォルト) | 2 | 8 GB | 30 GB | Fell 2 | 4 GB, NVMe 80 GB |
| saas-linux-medium-amd64 | 4 | 16 GB | 50 GB | Fell 4 | 8 GB, NVMe 160 GB |
| saas-linux-large-amd64(PremiumおよびUltimate) | 8 | 32 GB | 100 GB | Fell 8 | 16 GB, NVMe 320 GB |
| saas-linux-xlarge-amd64(PremiumおよびUltimate) | 16 | 64 GB | 200 GB | Fell 16 | 32 GB, NVMe 640 GB |
価格確認日:
CIやコンパイルジョブで専用コアが重要なのはなぜですか?
ビルドはCPUを何分にもわたってフル負荷で占有します。これは共有VPSプランが制限するように作られているまさにそのパターンです。 同じ調査のホスト2社がこれを規約に明記しています。Spartan Hostの規約では、割り当てられたコアの50%を1時間以上超えて使用することを禁止しており、Advin Serversの公正使用ポリシーではCPU使用率を75%に制限しています。
共有vCPUでは、コストはsteal timeとしても現れます。静かな夜には速いパイプラインがピーク時間帯には長引き、コードとは無関係の理由でジョブのタイムアウトが発生します。CPU steal timeとは何か、VPSで確認する方法では、その読み取り方を説明しています。
Cobaltfellの場合:ワークロードが必要とする限り、フル負荷が許可されます。CPUクレジットもバースト時間枠もなく、100%で数分経過してもスロットリングされません。vCPUはホストプロセッサのハードウェアスレッド1つ分です。お客様のvCPUはVPSに1対1で固定され、他のお客様に貸し出されることはなく、物理コアの2つのスレッドは常にペアで割り当てられます。そのため、2 vCPUごとに隣人と共有しない完全なコア1つになります。スレッド上に隣人がいないため、キャッシュが温まったパイプラインは実行ごとにほぼ同じ時間で完了し、遅いジョブはコードを指し示します。vCPUとコアのルールの仕組みは専用vCPUはコアかスレッドかで説明しています。
並列ビルドが同じvCPUを取り合うのを止めるにはどうすればよいですか?
各ジョブにVPSの固定シェアを割り当て、同じ数値をビルドツールに渡します。 ビルドツールはデフォルトで意見が分かれます。GNU makeは-jを指定しない限りレシピを1つずつ実行します。Cargoは論理CPUの数だけジョブを実行します。Ninjaは指定されなくてもCPU数に基づいて並列実行します。Fell 8上でこのようなビルドを4つ実行すると、それぞれが8つのコンパイラを起動します。8スレッドと16 GBのRAMに対して32プロセスです。
Docker executorでは、各ジョブが独自のコンテナで実行され、[runners.docker]がそのコンテナに対してcpusとmemoryの制限を受け取ります。両方を設定し、ジョブ内の並列度を合わせます:
concurrent = 4 # jobs at once, all runners together
check_interval = 3
[[runners]]
name = "fell-8-docker"
url = "https://gitlab.com"
token = "REPLACE_WITH_YOUR_RUNNER_TOKEN"
executor = "docker"
limit = 4
[runners.docker]
image = "debian:13"
cpus = "2" # CPUs for each job container
memory = "3g" # leaves room for the system and Dockervariables:
MAKEFLAGS: "-j2" # GNU make
CARGO_BUILD_JOBS: "2" # cargo (build.jobs)
build:
script:
- make
- cargo build --release
- ninja -C build -j 2RustやC++のコンパイルにはVPS上で何が必要ですか?
コンパイルにはスレッドとメモリが歩調を合わせて必要です。並列コンパイラプロセスごと、リンクステップごとに、それぞれが独自のRAMシェアを消費します。 大きなC++の翻訳単位や重いジェネリクスを使うRustクレートが通常のメモリピークであり、大きなバイナリの最終リンクは単一のコンパイルよりも多くのメモリを必要とすることがあります。
メモリ不足で強制終了されたビルドには、より多くのvCPUではなく、より低い-jやCARGO_BUILD_JOBSが必要です。ジョブを増やすとクラッシュが増えるだけです。ビルドキャッシュはVPS自身のディスク(全プランでNVMeストレージ)に置き、古いイメージはdocker image pruneで削除してください。ビジーなランナーはパイプラインが示すよりも早くディスクを満杯にするからです。
ビルドごとに数十ギガバイトのRAMを必要とするモノレポはベアメタルの領域であり、Cobaltfellでは販売していません。データベースを伴うテストスイートには独自のサイジングルールがあり、PostgreSQLがVPS上で必要とするCPUとRAMの量で扱っています。
VPS上のランナーはどのexecutorを使うべきですか?
Docker executorが適切なデフォルトです。GitLabのexecutorガイドによれば、各ビルドにクリーンで分離された環境を提供する一方、Shell executorはビルドごとのクリーンな環境も、ランナーのファイルシステムの保護も提供しません。 Shell、SSH、VirtualBoxのexecutorはメンテナンスモードです。
誰がジョブを開始できるかも同じくらい重要です。フォークからのマージリクエストは自身のコードをVPS上で実行します。GitHubのセキュリティガイドによれば、セルフホステッドランナーはパブリックリポジトリにはほとんど使うべきではなく、同じ理屈が信頼できないプルリクエストを実行するあらゆるCIシステムに当てはまります。
Forgejo、Woodpecker、Jenkins、GitHub Actionsエージェントも同じ方法でサイジングします。重複するジョブを数え、それぞれに固定のスレッドとメモリを割り当てます。各サイズのプラン価格は専用コアVPSのコストはいくらかに掲載しています。
VPS上のCIランナーについて他にどんな質問がありますか?
CobaltfellのVPSはGitHub Actionsのセルフホステッドランナーを実行できますか?
はい。どのLinuxランナーエージェントでも動作します:Linuxイメージのみ: Debian、Ubuntu、AlmaLinux、Rocky Linux。Windowsは提供していません。GitLab Runnerと同様に、重複するジョブあたり約2 vCPUでサイジングし、第三者がプルリクエストを開けるパブリックリポジトリからは遠ざけてください。
1時間100% CPUのビルドはスロットリングされますか?
Cobaltfellではされません。ワークロードが必要とする限り、フル負荷が許可されます。CPUクレジットもバースト時間枠もなく、100%で数分経過してもスロットリングされません。禁止されている唯一のCPU負荷の高い用途:いかなるプランでも、いかなるソフトウェアでも、暗号資産のマイニングは許可されません。ビルド、エンコード、推論、データベースなど、お客様自身の高負荷なCPU処理はフル負荷で実行できます。ブロックチェーンを検証するだけのノードはマイニングには該当しません。
GitLab RunnerにDockerは必要ですか?
いいえ、Shell executorはジョブをVPS上で直接実行します。GitLabは、ビルドごとのクリーンな環境を提供せず、メンテナンスモードであると注記しているため、rootとして手動で実行しないものにはDockerがより良いデフォルトです。
GitLab自体をランナーと同じVPSで実行すべきですか?
いいえ。GitLabとそのrunnerが同じスレッドとメモリを取り合うことになり、重いパイプラインはそれを監視するWebインターフェースを遅くします。runnerは専用のVPSに置くべきです。
各プランでのパイプラインの速度はどれくらいですか?
タイミングはまだ公開されていません。当社自身のYABSおよびGeekbench 6の結果は、測定したsteal timeとともに、最初のテストマシンが納品され次第、日付を添えて公開されます。それまでは、当社独自のパフォーマンス数値は一切提示しません。選択したプランで同じパイプラインを2回実行し、2回目のキャッシュが温まった状態の時間をベースラインとして記録してください。
出典 (10)
- GitLab Runnerの詳細設定 (concurrent、limit、[runners.docker]) — GitLab (checked 2026-11-02)
- GitLab Runnerのシステム要件 — GitLab (checked 2026-11-02)
- Linux上のGitLabホスト型runner: マシンタイプ — GitLab (checked 2026-11-02)
- GitLab Runnerのexecutor — GitLab (checked 2026-11-02)
- GNU makeマニュアル: 並列実行 — GNU Project (checked 2026-11-02)
- cargo build:--jobsオプション — The Rust Project (checked 2026-11-02)
- Ninjaビルドシステムのマニュアル — Ninja (checked 2026-11-02)
- セキュアな利用のリファレンス: セルフホストrunner — GitHub (checked 2026-11-02)
- Spartan Host 利用規約 spartanhost.org/tos — Spartan Host (checked 2026-11-02)
- Advin Servers フェアユースポリシー docs.advinservers.com/policies/fair-use — Advin Servers (checked 2026-11-02)