Перейти к содержимому

Как мы измеряем

Цифры, которые этот сайт приводит как измеренные, получены на физическом сервере с тем же процессором, что и в наших продакшн-серверах: сон, пробуждение и снимок, а также бенчмарк CPU. Здесь каждая из них — с машиной, датой, способом замера и местом, где лежат сырые результаты.

Сон, пробуждение и снимок

Машина
Cherry Servers, Сингапур: AMD Ryzen 9 9950X (Zen 5, 16 ядер), 128 GB, Ubuntu 26.04.1, ядро 7.0.0-34
Дата
3 октября 2026 г.
Песочница
песочница 4 vCPU / 8 GiB, node:24-bookworm
Узел
sandboxd с настройками того дня по умолчанию: пропатченный Firecracker, память в два слоя, процесс наготове для каждой спящей песочницы, устройства на PCI
Клиент
на той же машине, по одному постоянно открытому соединению, так что цифра — это сам запрос, а не рукопожатие
ЧтоКак замереноМедиана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
Создание до ответа на первую командусто раз подряд11.0 мс12.0 мс100tti-sequential.txt sequential x100
30 сразу: все уснулитридцать песочниц усыпляются одновременно, замер — до последней49.0 мс—1wake.txt concurrent 30 sleep_all
30 сразу: все проснулисьте же тридцать будятся одновременно, замер — до последней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 страниц различались 3 байта одной страницы.

Ту же цифру можно увидеть для своих песочниц: каждый вызов API, которому пришлось разбудить песочницу, сообщает в заголовке Server-Timing: wake;dur=…, сколько миллисекунд это заняло.

CPU: открытый бенчмарк StarSling

StarSling публикует открытый бенчмарк провайдеров песочниц (github.com/starslingdev/hpc-sandbox-benchmarks). Его оценка CPU — веб-инструменты Node.js в песочнице с 4 vCPU и 8 GiB, в прогонах в секунду. Мы запустили его набор тестов в песочнице Glac и сравнили результат с провайдерами из последнего опубликованного прогона, который есть в нашей копии его данных.

Glac, прогонов в секунду
29.0
медиана 13 провайдеров
17.26
быстрее этой медианы
68%

Наш результат

  • Наш первый продакшн-сервер в Ковентри (Великобритания): AMD Ryzen 9 9950X со 128 GB, 10 октября 2026 г., во время приёмочного тестирования, когда на нём не работала ни одна другая песочница.
  • Собственный набор тестов и образ StarSling (sandbox-benchmarks-toolchain:v8) в песочнице с 4 vCPU и 8 GiB, запущенные так же, как их запускает продукт.
  • Три прохода набора тестов; каждый проход — медиана трёх его попыток: 28.97, 29.27, 29.00. Итоговая цифра — их медиана, 29.00.

Их результаты

  • Прогон StarSling 36498291449: именно его показывал рейтинг 2 октября 2026 г., когда мы сделали копию данных, и это последний из девяти прогонов в этой копии (23–29 сентября 2026 г.).
  • Значение провайдера — медиана по его песочницам от медианной попытки каждой песочницы: таково правило самого рейтинга.
  • Наша копия хранит каждое значение как отношение к значению одного провайдера в том же прогоне, с точностью до трёх знаков, поэтому каждое значение ниже отличается от значения StarSling не больше чем примерно на 0.02.

Наш результат и 13 значений, прогонов в секунду, по убыванию

  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; значения здесь читаются при сборке из reports/providers/sources/performance-bar/starsling-metrics.tsv, который получен из этих данных скриптом analyse.py, лежащим рядом.

О чём это не говорит

  • Наш замер шёл, когда машина больше ничем не была занята; их замеры — при той нагрузке, что была на их хостах в тот день. Занятая машина снижает оценку: на 9950X, где на каждое ядро приходилось 1.25 других занятых vCPU, тот же набор тестов набрал в нашей песочнице 10.4 (8 октября 2026 г.). Эти соседи гоняли тот же тест по кругу — самую требовательную к кешу нагрузку, какая бывает, тяжелее реального парка машин.
  • Это один бенчмарк одного вида работы — 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, рядом с кодом, который сделал замер. Репозиторий не публичный; пути показывают, из какого прогона взята каждая цифра, а отчёт о каждом раунде говорит, что запускали, на чём и что пошло не так.

ПесочницаКуб