本文へスキップ

測定方法

このサイトが実測値として示す数値、つまりスリープ、復帰、スナップショットと CPU ベンチマークは、本番サーバーと同じプロセッサーを積んだベアメタルで測定したものです。それぞれについて、マシン、日付、測り方、生データの場所を示します。

スリープ、復帰、スナップショット

マシン
Cherry Servers(シンガポール):AMD Ryzen 9 9950X(Zen 5、16 コア)、128 GB、Ubuntu 26.04.1、カーネル 7.0.0-34
日付
2026年10月3日
サンドボックス
4 vCPU / 8 GiB のサンドボックス、node:24-bookworm
ノード
その日のデフォルト設定の sandboxd:パッチを当てた Firecracker、2 層のメモリ、スリープ中のサンドボックスごとに待機させたプロセス、PCI 上のデバイス
呼び出し側
同じマシン上から、開いたままの 1 本の接続で呼び出すため、数値はハンドシェイクを含まないリクエストそのもの
項目計測方法中央値p95回数出典
スリープさせるPOST …/sleep、呼び出し側から見た時間2.3 ミリ秒2.8 ミリ秒30wake.txt cycle sleep
復帰(自動でスリープした後)次の呼び出しで、ノード自身が計測した復元の時間(Server-Timing ヘッダー)3.5 ミリ秒3.9 ミリ秒29wake.txt auto wake
その呼び出しへの応答復帰させたリクエスト全体、送信から応答まで6.7 ミリ秒7.1 ミリ秒29wake.txt auto call
復帰(スリープの直後)次の復帰に備えて待機させるプロセスがまだ起動中のため、その分を待つ5.6 ミリ秒6.3 ミリ秒30wake.txt cycle wake
実行中のサンドボックスのスナップショットAPI 経由で、実行中にメモリ、プロセス、ディスクを丸ごと32 ミリ秒—4snapshot.txt 31.5 to 31.9 ms
作成(プールから)すでに実行中のテンプレートのコピー1.3 ミリ秒—100tti-sequential.txt create median
作成から最初のコマンドの応答まで1 台ずつ順に 100 回11.0 ミリ秒12.0 ミリ秒100tti-sequential.txt sequential x100
30 台同時:全台スリープ30 台のサンドボックスを同時にスリープさせ、最後の 1 台が終わるまで49.0 ミリ秒—1wake.txt concurrent 30 sleep_all
30 台同時:全台復帰同じ 30 台を同時に復帰させ、最後の 1 台が終わるまで61.4 ミリ秒—1wake.txt concurrent 30 wake_all

ファイルは sandboxd/bench/results/2026-10-03-s3-ryzen9950x/4c8g-layers-final/ にあり、レポートは sandboxd/bench/results/README.md のラウンド 2、セクション「二」です。サイトのほかのページも、スリープと復帰の数値(復帰 3.5 ミリ秒、スリープ 2.3 ミリ秒)をこの表と同じファイルから読み込んでいるため、このラウンドの値です。スナップショットは、Firecracker 自身が書き出したメモリ全体とページ単位で照合し、2,097,152 ページ中 1 ページの 3 バイトだけが異なっていました。

ご自身のサンドボックスでも同じ数値を確認できます。サンドボックスを復帰させる必要があった API 呼び出しは、その所要時間をミリ秒単位で Server-Timing: wake;dur=… ヘッダーに返します。

CPU:StarSling のオープンベンチマーク

StarSling は、サンドボックスプロバイダーのオープンなベンチマークを公開しています(github.com/starslingdev/hpc-sandbox-benchmarks)。その CPU スコアは、4 vCPU、8 GiB のサンドボックスで Node.js の Web ツール群を実行したときの 1 秒あたりの実行回数です。そのスイートを Glac のサンドボックスで実行し、手元にあるデータのコピーに含まれる最新の公開実行のプロバイダーと結果を比較しました。

Glac(1 秒あたりの実行回数)
29.0
13 社のプロバイダーの中央値
17.26
その中央値より高速
68%

Glac の数値

  • Glac 初の本番サーバー(英国コベントリー、AMD Ryzen 9 9950X、128 GB)で、2026年10月10日、受け入れテスト中に、ほかのサンドボックスが動いていない状態で測定しました。
  • StarSling 自身のスイートとイメージ(sandbox-benchmarks-toolchain:v8)を、4 vCPU、8 GiB のサンドボックスで、製品と同じ方法で実行しました。
  • スイートを 3 回通して実行しました。各回の値は 3 回の試行の中央値で、28.97, 29.27, 29.00 です。掲載している数値はその中央値の 29.00 です。

他社の数値

  • StarSling の実行 36498291449:2026年10月2日に Glac がデータのコピーを取得した時点でリーダーボードに表示されていた実行で、そのコピーに含まれる 9 回の実行(2026年9月23日〜29日)のうち最新のものです。
  • 各プロバイダーの値は、サンドボックスごとの試行の中央値を、そのプロバイダーの全サンドボックスについてとった中央値です。リーダーボード自身のルールに従っています。
  • Glac が保存したコピーは、各値を同じ実行内の 1 社のプロバイダーの値に対する比率として小数点以下 3 桁で保持しています。そのため、以下の各値と StarSling 自身の値との差は約 0.02 以内です。

Glac の値と 13 社の値(1 秒あたりの実行回数、高い順)

  1. 29.0Glac
  2. 25.461
  3. 21.562
  4. 21.163
  5. 20.554
  6. 19.555
  7. 19.356
  8. 17.267 · 中央値
  9. 15.538
  10. 14.899
  11. 13.0110
  12. 12.6511
  13. 12.6012
  14. 8.2213

29.0 ÷ 17.26 = 1.68 なので、中央値より 68% 高速です。プロバイダー名は StarSling の公開データにあります。ここでの値は、そのデータから隣の analyse.py で作成した reports/providers/sources/performance-bar/starsling-metrics.tsv を、ビルド時に読み込んだものです。

この結果からわからないこと

  • Glac の測定はマシン上でほかに何も動いていない状態で行いましたが、他社の測定は、その日にホストが抱えていた負荷の下で行われています。マシンが混んでいるとスコアは下がります。コアごとにほかのビジーな vCPU が 1.25 個ある 9950X では、同じスイートが Glac のサンドボックスで 10.4 でした(2026年10月8日)。このとき隣で動いていたのは同じテストのループで、考えうる中で最もキャッシュを消費する負荷であり、実際のフリートより重いものです。
  • これは 1 種類の処理、つまり Node.js で JavaScript のツールを動かす処理だけのベンチマークで、コアの速さをそのまま反映します。ディスクやネットワークについては何もわかりません。

ファイル

  • sandboxd/bench/results/2026-10-10-cvt-01-accept/:受け入れテスト、その生の出力と results.json
  • reports/providers/sources/performance-bar/starsling-metrics.tsv
  • reports/providers/sources/performance-bar.md:コピーの作成方法と読み方
  • sandboxd/bench/results/README.md:セクション 40 と 42

生データの場所

このページのパスはすべて Glac 自身のリポジトリ内のファイルで、測定に使ったコードと同じ場所にあります。リポジトリは公開していませんが、パスから各数値がどの実行によるものかがわかります。また各ラウンドのレポートには、何をどのマシンで実行し、何がうまくいかなかったかが書かれています。

サンドボックスキューブ