Cách chúng tôi đo
Mọi số liệu đo được trên trang này đều được đo trên máy chủ vật lý, với bộ xử lý mà các máy chủ production của chúng tôi dùng: ngủ, thức dậy và snapshot, cùng benchmark CPU. Dưới đây là từng số liệu, kèm máy, ngày đo, cách đo và nơi lưu kết quả thô.
- Máy chủ vật lý. Cả một máy vật lý, không phải một máy ảo trên máy của người khác, nên không có thứ gì chúng tôi không nhìn thấy dùng chung với nó.
- Trung vị, kèm độ phân tán. Giá trị ở giữa của nhiều lần chạy, kèm phân vị thứ 95 và số lần chạy bên cạnh.
- Trường hợp tốt nhất được ghi rõ là trường hợp tốt nhất. Phần lớn các phép đo chạy khi máy không bận việc gì khác; ở đâu như vậy, trang đều ghi rõ.
- Giữ lại kết quả thô. Mỗi con số ghi tên tệp mà nó được đọc ra, nằm trong kho mã cùng với code đã tạo ra nó.
Ngủ, thức dậy và snapshot
- Máy
- Cherry Servers, Singapore: AMD Ryzen 9 9950X (Zen 5, 16 nhân), 128 GB, Ubuntu 26.04.1, kernel 7.0.0-34
- Ngày
- 3 tháng 10, 2026
- Sandbox
- Sandbox 4 vCPU / 8 GiB, node:24-bookworm
- Node
- sandboxd với các thiết lập mặc định của ngày đó: Firecracker đã vá, bộ nhớ hai lớp, một tiến trình chờ sẵn cho mỗi sandbox đang ngủ, thiết bị trên PCI
- Phía gọi
- trên cùng máy, qua một kết nối được giữ mở, nên con số là của chính yêu cầu chứ không phải của bước bắt tay
| Hạng mục | Cách đo thời gian | Trung vị | p95 | Số lần chạy | Nguồn |
|---|---|---|---|---|---|
| Chuyển sang ngủ | POST …/sleep, như phía gọi đo được | 2.3 ms | 2.8 ms | 30 | wake.txt cycle sleep |
| Thức dậy, sau khi tự ngủ | thời gian khôi phục do chính node đếm (header Server-Timing của nó), cho lần gọi tiếp theo | 3.5 ms | 3.9 ms | 29 | wake.txt auto wake |
| Lần gọi đó, đến khi được trả lời | toàn bộ yêu cầu đã đánh thức nó, từ lúc gửi đến lúc được trả lời | 6.7 ms | 7.1 ms | 29 | wake.txt auto call |
| Thức dậy, ngay sau khi ngủ | tiến trình chờ sẵn cho lần thức dậy tiếp theo vẫn đang khởi động, nên phải chờ | 5.6 ms | 6.3 ms | 30 | wake.txt cycle wake |
| Snapshot của một sandbox đang chạy | qua API: bộ nhớ, tiến trình và đĩa, trong khi nó đang chạy | 32 ms | — | 4 | snapshot.txt 31.5 to 31.9 ms |
| Tạo, từ nhóm chờ sẵn | một bản sao của bản mẫu đang chạy sẵn | 1.3 ms | — | 100 | tti-sequential.txt create median |
| Tạo, đến khi lệnh đầu tiên được trả lời | lần lượt, một trăm lần | 11.0 ms | 12.0 ms | 100 | tti-sequential.txt sequential x100 |
| 30 cùng lúc: tất cả đều ngủ | ba mươi sandbox chuyển sang ngủ cùng lúc, tính đến sandbox cuối cùng | 49.0 ms | — | 1 | wake.txt concurrent 30 sleep_all |
| 30 cùng lúc: tất cả đều thức | chính ba mươi sandbox đó được đánh thức cùng lúc, tính đến sandbox cuối cùng | 61.4 ms | — | 1 | wake.txt concurrent 30 wake_all |
Các tệp nằm trong sandboxd/bench/results/2026-10-03-s3-ryzen9950x/4c8g-layers-final/; bản tường thuật là sandboxd/bench/results/README.md, đợt 2, mục 二. Các trang khác trên website đọc số liệu ngủ và thức dậy (3.5 ms để thức dậy, 2.3 ms để chuyển sang ngủ) từ cùng tệp với bảng này, nên đó là số liệu của đợt này. Snapshot được kiểm tra từng trang so với toàn bộ bộ nhớ do chính Firecracker ghi ra: chỉ 3 byte của một trang trong số 2 097 152 trang là khác nhau.
Bạn có thể đọc cùng con số này cho sandbox của chính mình: mọi lệnh gọi API phải đánh thức một sandbox đều cho biết việc đó mất bao lâu, tính bằng mili giây, trong header Server-Timing: wake;dur=… của nó.
CPU: benchmark mở của StarSling
StarSling công bố một benchmark mở về các nhà cung cấp sandbox (github.com/starslingdev/hpc-sandbox-benchmarks). Điểm CPU của nó là bộ công cụ web của Node.js chạy trong một sandbox 4 vCPU và 8 GiB, tính bằng số lần chạy mỗi giây. Chúng tôi đã chạy bộ bài kiểm thử đó trong một sandbox của Glac và so sánh kết quả với các nhà cung cấp trong lần chạy công bố gần nhất mà bản sao dữ liệu của chúng tôi có.
- Glac, số lần chạy mỗi giây
- 29.0
- trung vị của 13 nhà cung cấp
- 17.26
- nhanh hơn trung vị đó
- 68%
Của chúng tôi
- Máy chủ production đầu tiên của chúng tôi, ở Coventry, Vương quốc Anh: AMD Ryzen 9 9950X với 128 GB, vào ngày 10 tháng 10, 2026, trong đợt kiểm thử nghiệm thu, không có sandbox nào khác đang bận trên đó.
- Bộ kiểm thử và image của chính StarSling (
sandbox-benchmarks-toolchain:v8), trong một sandbox 4 vCPU và 8 GiB, chạy theo đúng cách sản phẩm chạy nó. - Ba lượt chạy bộ kiểm thử; mỗi lượt là trung vị của ba lần thử của nó: 28.97, 29.27, 29.00. Con số là trung vị của các lượt, 29.00.
Của họ
- Lần chạy 36498291449 của StarSling: lần chạy mà bảng xếp hạng của họ hiển thị vào ngày 2 tháng 10 năm 2026, khi chúng tôi sao chép dữ liệu của họ, và là lần mới nhất trong chín lần chạy có trong bản sao đó (từ ngày 23 đến ngày 29 tháng 9 năm 2026).
- Giá trị của một nhà cung cấp là trung vị của các lần thử trung vị ở từng sandbox của họ: đúng quy tắc của chính bảng xếp hạng.
- Bản sao của chúng tôi lưu mỗi giá trị dưới dạng tỉ lệ so với giá trị của một nhà cung cấp trong cùng lần chạy, đến ba chữ số thập phân, nên mỗi giá trị dưới đây chênh lệch khoảng 0.02 trở xuống so với số của chính StarSling.
Giá trị của chúng tôi và 13 giá trị kia, tính bằng số lần chạy mỗi giây, xếp từ cao xuống thấp
29.0 ÷ 17.26 = 1.68, tức nhanh hơn trung vị 68%. Tên các nhà cung cấp có trong dữ liệu StarSling công bố; các giá trị ở đây được đọc lúc build từ reports/providers/sources/performance-bar/starsling-metrics.tsv, tệp được tạo từ dữ liệu đó bằng analyse.py nằm bên cạnh.
Những gì nó không cho biết
- Lần chạy của chúng tôi diễn ra khi máy không bận việc gì khác; của họ chạy cùng bất cứ tải nào mà máy chủ của họ gánh hôm đó. Một máy bận sẽ làm điểm giảm: trên một 9950X có 1.25 vCPU bận khác cho mỗi nhân, cùng bộ kiểm thử đó đạt 10.4 trong sandbox của chúng tôi (ngày 8 tháng 10 năm 2026). Những hàng xóm đó chạy chính bài kiểm thử này liên tục, loại tải ngốn bộ nhớ đệm nhất có thể, nặng hơn một cụm máy thực tế.
- Đây là một benchmark cho một loại công việc, Node.js chạy các công cụ JavaScript, vốn phụ thuộc vào tốc độ của các nhân. Nó không nói gì về đĩa hay mạng.
Các tệp
sandboxd/bench/results/2026-10-10-cvt-01-accept/: đợt nghiệm thu, đầu ra thô của nó vàresults.jsonreports/providers/sources/performance-bar/starsling-metrics.tsvreports/providers/sources/performance-bar.md: bản sao được tạo và đọc như thế nàosandboxd/bench/results/README.md: mục 40 và 42
Kết quả thô nằm ở đâu
Mọi đường dẫn trên trang này là một tệp trong kho mã riêng của Glac, bên cạnh code đã thực hiện phép đo. Kho mã không công khai; các đường dẫn cho biết mỗi con số đến từ lần chạy nào, và bản tường thuật của mỗi đợt cho biết đã chạy gì, trên máy nào, và điều gì đã trục trặc.