Cara Menjalankan Dormice untuk Sandbox Agent Sendiri
Pelajari cara memasang Dormice di satu Linux VPS, menjalankan kode melalui API yang kompatibel dengan E2B, memeriksa isolasi container, dan menghitung kebutuhan host.
Apa itu Dormice dan apa yang bukan
Dormice adalah sandbox agent yang di-host sendiri: satu daemon pada Linux VPS milik Anda, yang dipanggil oleh kode agent melalui HTTP untuk menjalankan kode yang tidak tepercaya di dalam container terisolasi. Program Anda meminta sandbox berdasarkan nama, mendapatkan sandbox yang sama apa pun keadaan sebelumnya, menjalankan perintah di dalamnya, lalu membaca outputnya. Sandbox adalah resource terprogram, bukan mesin yang Anda akses untuk login.
Bentuknya berbeda dari memberikan satu komputer penuh kepada agent. VM sementara untuk agent coding adalah mesin yang Anda akses melalui SSH, biarkan dirusak oleh agent, lalu hapus. Dormice berada satu tingkat di bawahnya: Dormice adalah API eksekusi yang dipanggil program Anda ketika program tersebut sudah memiliki kode dan memerlukan tempat yang aman untuk menjalankannya. Gunakan VM sementara ketika satu mesin penuh menjadi unit pekerjaan. Gunakan Dormice ketika satu panggilan exec menjadi unit pekerjaan dan Anda ingin menjalankan seratus panggilan per hari tanpa menggunakan seratus VM.
Proyek ini menyatakan kompatibel dengan E2B. E2B adalah layanan sandbox ter-host yang library client-nya sudah diimpor oleh banyak framework agent. Dormice menyediakan protokol yang sama di bawah prefix URL miliknya sendiri, sehingga aplikasi yang dibuat untuk package resmi e2b tetap berjalan ketika diarahkan ke mesin Anda sendiri. Kode aplikasi tidak berubah. Hanya dua URL dan satu prefix API key yang berubah.
Makna “SQLite untuk sandbox agen” dalam praktik
SQLite adalah database yang disematkan ke dalam aplikasi, bukan service yang harus Anda operasikan. Dormice menggunakan perbandingan ini secara langsung. Satu daemon, satu file SQLite untuk ledger, dan satu port TCP. Tidak ada Kubernetes, database terpisah, atau scheduler. Daemon mengambil lock di samping ledger-nya dan menolak start jika ledger tersebut dan mesin yang ditemukannya tidak mungkin merupakan pasangan yang sama. Dengan demikian, split brain tidak dapat terjadi secara diam-diam. Desainnya ditujukan untuk satu mesin. Jika Anda memerlukan fleet pada banyak host, README menyarankan secara jelas agar Anda memilih opsi lain, dan saran itu sebaiknya diikuti.
Bagian kedua dari gagasan ini berkaitan dengan biaya. Sandbox terkelola mengenakan biaya untuk setiap detik sandbox tersebut tersedia, sehingga sandbox terkelola pada dasarnya bersifat disposable. Dormice berjalan pada hardware yang sudah Anda biayai, sehingga sandbox-nya bersifat permanen dan biaya efektifnya semakin rendah selama sandbox tersebut tetap tidak aktif. Sandbox masuk ke kondisi yang lebih rendah satu tingkat setiap kali: active, lalu frozen, kemudian stopped, dan akhirnya archived. Setiap acquire mengaktifkannya kembali dari tingkat terakhir yang dicapainya.
Freezing adalah bagian yang perlu dipahami, karena fitur inilah yang membuat penyimpanan sandbox setiap agen secara permanen tetap terjangkau. Angka berikut diterbitkan oleh proyek tersebut dan diukur pada hardware miliknya, bukan pada hardware Anda.
The data behind this chart
[
{
"label": "Active, holding 1 GiB",
"resident_memory_mib": 1024,
"wake_ms": 0
},
{
"label": "Frozen",
"resident_memory_mib": 5,
"wake_ms": 50
}
]Sandbox idle yang menggunakan 1024 MiB memori turun menjadi 5 MiB memori resident setelah dibekukan, lalu kembali aktif dalam sekitar 50 ms. Proses ditangguhkan dan dilanjutkan di tempat yang sama, sehingga agen yang berjalan lama tetap mempertahankan state shell dan pekerjaannya yang belum selesai selama proses freeze. Uji perilaku ini pada host Anda sendiri sebelum menggunakannya sebagai dasar perencanaan kapasitas.
Yang diperlukan host sebelum instalasi
Host harus menggunakan Ubuntu atau Debian pada x86_64, dan installer memerlukan root. Daemon tetap berjalan sebagai root karena melakukan loop mount dan menulis cgroups.
Sandbox berjalan di Docker dengan gVisor (runtime container yang menempatkan kernel userspace di antara container dan kernel host). Komponen ini menyediakan runtime runsc yang digunakan setiap sandbox. Daemon berjalan pada Node 22 atau yang lebih baru. Installer membawa salinannya sendiri, sehingga Node pada sistem Anda tidak berubah.
Swap harus tersedia, dan vm.swappiness harus bernilai 100. Ini bukan saran tuning, tetapi persyaratan fungsional. Proses pembekuan bekerja dengan memindahkan memori sandbox yang idle ke swap. gVisor menyimpan memori sandbox sebagai shared memory, dan kernel tidak akan melakukan swap pada shared memory jika menggunakan nilai swappiness default. Proyek ini mengukur bahwa 0 byte direklamasi pada nilai default, sedangkan 99.5 persen direklamasi pada nilai 100. Periksa nilai yang benar-benar digunakan kernel, karena beberapa image cloud menetapkan vm.swappiness = 0 dalam file yang mungkin tidak pernah Anda periksa.
sysctl vm.swappiness
swapon --showsysctl vm.swappiness harus menampilkan vm.swappiness = 100, dan swapon --show harus menampilkan sebuah swapfile. Jika swappiness menampilkan 0, setiap proses freeze tidak melakukan apa pun dan Anda tetap membayar penggunaan memori penuh untuk setiap sandbox yang idle.
Instal Dormice di Ubuntu
Instalasi yang didokumentasikan dilakukan dengan satu pipe ke bash:
curl -fsSL https://raw.githubusercontent.com/BitMiracle-AI/Dormice/main/deploy/install.sh | bashAmbil skrip tersebut dan baca isinya sebelum menjalankannya. Skrip ini berjalan sebagai root dan mengubah host Anda: skrip menginstal Docker jika belum tersedia, mengunduh gVisor dan Caddy dengan verifikasi checksum, membuat swapfile, menulis unit systemd, serta menambahkan aturan firewall.
curl -fsSL https://raw.githubusercontent.com/BitMiracle-AI/Dormice/main/deploy/install.sh -o dormice-install.sh
less dormice-install.sh
sudo bash dormice-install.sh --swap-gb 8--swap-gb mengatur ukuran swapfile dan nilai bawaannya adalah 16, yang berarti sebagian besar kapasitas disk pada VPS kecil harus dialokasikan untuk swap. --mirror cn mengalihkan unduhan ke mirror yang dapat dijangkau dari wilayah daratan China. Menjalankan ulang installer akan memperbarui kode dan memperbaiki konfigurasi yang menyimpang, tetapi tidak pernah merotasi token API Anda.
Kode ditempatkan di /opt/dormice, konfigurasi di /etc/dormice/env, data sandbox di /var/lib/dormice, sedangkan perintah dormice dan dor ditempatkan di /usr/local/bin. Installer membuat token API selama instalasi dan menuliskannya ke /etc/dormice/env dengan mode 600.
Tidak ada rilis bertag yang dapat dijadikan acuan instalasi. Per 4 Agustus 2026, repository tersebut tidak memiliki git tag maupun GitHub release, sehingga installer melakukan clone terhadap main dan Anda akan memperoleh kode yang masuk ke repository pada pagi itu. Karena itu, menetapkan versi berarti mencatat commit yang benar-benar Anda instal.
git -C /opt/dormice rev-parse HEADSimpan hash tersebut bersama catatan deployment Anda. Jika upgrade menimbulkan masalah, commit tersebut adalah satu-satunya cara untuk kembali, karena tidak ada nomor versi yang dapat diminta.
Installer berakhir dengan menjalankan dor doctor, yaitu pemeriksaan host read-only yang menjalankan container gVisor sungguhan untuk membuktikan bahwa runtime berfungsi, bukan sekadar mempercayai daftar paket. Jalankan kembali pemeriksaan ini setiap kali daemon bermasalah.
sudo dor doctor
systemctl is-active dormicesystemctl is-active dormice seharusnya mencetak active. Jika yang dicetak adalah failed, journalctl -u dormice -n 50 berisi penyebabnya, dan kegagalan start biasanya disebabkan oleh prasyarat swap atau gVisor, bukan oleh daemon itu sendiri.
Installer juga memasang Caddy pada host, jadi periksa layanan yang sedang listening sebelum menganggap konfigurasi firewall sudah selesai.
sudo ss -lntpDaemon melakukan bind pada 127.0.0.1:3676 dan tidak memiliki pengaturan untuk mengubahnya, sesuai desainnya. Mengaksesnya dari laptop merupakan tindakan yang disengaja, dan cara paling sederhana adalah menggunakan SSH tunnel.
ssh -L 3676:127.0.0.1:3676 root@your-serverSetelah tunnel terbuka, http://127.0.0.1:3676/console pada laptop Anda adalah konsol web. Masuk satu kali menggunakan token, lalu token tersebut diubah menjadi session cookie httpOnly sehingga token itu sendiri tidak pernah disimpan di lokasi yang dapat dibaca halaman. Halaman Connect tersebut menampilkan cuplikan konfigurasi klien yang siap disalin dan ditempel, serta sudah diarahkan ke endpoint Anda sendiri.
Buat sandbox dan jalankan kode di dalamnya
Satu operasi membuat sandbox: acquire. Operasi ini idempoten, sehingga key yang sama selalu mengembalikan sandbox yang sama dengan membuat, membangunkan, memulai, atau memulihkannya sesuai kebutuhan. Semua verb lainnya mengembalikan 404 untuk key yang belum pernah dikenali. CLI dor tidak memiliki verb acquire, sehingga sandbox pertama Anda dibuat melalui console atau client library.
Rute console adalah yang tercepat. Buka /console melalui tunnel dan buat sandbox bernama my-agent. Setelah itu, CLI dapat digunakan pada sandbox tersebut.
sudo grep DORMICE_API_TOKEN /etc/dormice/env
export DORMICE_ENDPOINT=http://127.0.0.1:3676
export DORMICE_API_TOKEN=paste-the-value-here
dor sandbox ls
dor sandbox exec my-agent 'python3 --version'dor sandbox ls mencantumkan setiap sandbox beserta status siklus hidupnya. Dengan cara ini, Anda dapat memantau perubahan statusnya dari active menjadi frozen. dor sandbox exec menampilkan versi Python 3.12 karena image bawaan menggunakan Ubuntu 24.04 dengan Python 3.12, Node 24, git, dan ripgrep yang sudah terpasang. Error autentikasi berarti baris token yang Anda salin menyertakan nama variabel.
File dipindahkan dengan dor sandbox push my-agent ./script.py, yang menempatkannya di /home/user/script.py, dan dor sandbox pull my-agent notes.txt mengembalikan satu file. Verb file native membatasi ukuran setiap file hingga 16 MiB, sedangkan file surface E2B melakukan streaming sehingga kuota disk sandbox menjadi satu-satunya batas.
Destroy adalah satu-satunya verb yang menghapus data. Ini juga menunjukkan usia project tersebut: README utama dan bundled agent skill sama-sama mendokumentasikan dor sandbox destroy <key>, sedangkan README paket CLI mendokumentasikan dor sandbox release <key>. Jalankan dor sandbox --help pada build Anda sendiri dan jadikan hasilnya sebagai acuan.
Arahkan kode E2B yang sudah ada ke server Anda sendiri
Inilah alasannya. Paket resmi e2b dari npm, tanpa modifikasi, berkomunikasi dengan Dormice. Jalankan ini dari laptop Anda saat tunnel SSH terbuka agar tidak ada proses baru yang melakukan listening di server.
npm init -y
npm i e2b tsximport { Sandbox } from 'e2b';
const sbx = await Sandbox.create({
apiKey: `e2b_${process.env.DORMICE_API_TOKEN}`,
apiUrl: 'http://127.0.0.1:3676/e2b/api',
sandboxUrl: 'http://127.0.0.1:3676/e2b/envd',
});
const result = await sbx.commands.run('python3 -c "print(6 * 7)"');
console.log(result.exitCode, result.stdout);
await sbx.kill();DORMICE_API_TOKEN=paste-the-value-here npx tsx index.tsEksekusi yang berhasil menampilkan kode keluar 0 dan 42. API key adalah token Dormice Anda dengan awalan e2b_ di depannya. Format ini diperlukan oleh compatibility layer.
Kompatibilitas ini bukan stub. Streaming stdout dan stderr, perintah latar belakang, PTY interaktif, URL upload dan download bertanda tangan, pemantauan direktori, serta proxy port semuanya diuji melalui paket resmi terhadap daemon Docker dan gVisor yang sebenarnya oleh rangkaian pengujian end-to-end proyek ini. Beberapa perbedaan perlu diperhatikan sebelum Anda memigrasikan sistem yang sebenarnya:
- Template build belum diimplementasikan. Template adalah docker image yang Anda build sendiri dan daftarkan dengan
dor template add, laluSandbox.create('name')akan me-resolve-nya. Nama yang belum didaftarkan mengembalikan 404, bukan berpura-pura berhasil. - Sandbox yang dibuat melalui antarmuka E2B mendapatkan deadline nyata karena semantik E2B mengharuskannya. Deadline tidak pernah diterapkan pada sandbox yang dibuat melalui native API.
- Sandbox yang dibekukan mempertahankan prosesnya dan melanjutkannya dari kondisi saat proses dihentikan. Jadi, pause dan resume di sini bukan stop lalu cold start seperti yang mungkin biasa Anda gunakan.
Yang dihentikan sandbox, dan yang tidak
gVisor mencegat system call container di userspace dan menanganinya sendiri. Dengan demikian, kode di dalam sandbox tidak berkomunikasi langsung dengan kernel host. Di dalam sandbox, semua proses berjalan sebagai pengguna tanpa hak istimewa, uid 1000. Kombinasi ini menangani kasus umum: skrip yang dibuat dapat menjalankan rm -rf /, memenuhi disk, atau membuat proses turunan tanpa henti hingga terjadi kegagalan. Dampaknya hanya terjadi pada sandbox tersebut.
Berikut hal-hal yang tidak dihentikan. Semua ini menjadi tanggung jawab Anda.
- Sandbox memiliki akses jaringan keluar yang berfungsi. Kode yang dibuat dapat mengunduh apa pun dan mengirimkan apa pun yang ditemukannya. Penguatan jaringan pada installer menangani dua hal tertentu: aturan tersebut memblokir trafik container ke layanan metadata cloud pada 169.254.0.0/16, yaitu alamat yang digunakan cloud untuk memberikan kredensial instance kepada apa pun yang dapat mengaksesnya, dan menonaktifkan trafik antar-container dengan
"icc": falsedidaemon.jsonmilik Docker. Tidak ada pemblokiran lain. Bacasudo iptables -S DOCKER-USERdan tambahkan aturan DROP Anda sendiri untuk rentang alamat privat yang tidak boleh diakses sandbox. - Docker menyisipkan aturannya sendiri sebelum firewall Anda. Akibatnya, port container yang dipublikasikan dapat menerima koneksi dari Internet meskipun ufw menyatakan port tersebut tertutup. Baca cara Docker memublikasikan port melewati ufw dan dasar-dasar firewall ufw untuk VPS sebelum mengekspos apa pun pada host ini.
- gVisor adalah kernel userspace, bukan hypervisor. Ini merupakan kompromi yang disengaja karena freezing mengharuskan sandbox berupa proses, sedangkan keharusan menggunakan KVM akan membuat komponen tersebut tidak dapat dipasang di mana pun. Jika model ancaman Anda mengharuskan virtualisasi perangkat keras, gunakan isolasi kelas Firecracker dan terima biaya operasional yang menyertainya.
- Token API adalah seluruh batas keamanan di sisi klien. Apa pun yang memegang
DORMICE_API_TOKENdapat membuat, membaca, dan menghancurkan setiap sandbox pada mesin. Jalankan proses agent dengan pengguna dengan hak istimewa minimum pada VPS miliknya sendiri dan perlakukan token tersebut seperti Anda memperlakukan kunci SSH. Kebiasaan dari menjalankan Claude Code dengan aman pada VPS dapat diterapkan secara langsung.
Daemon itu sendiri berjalan sebagai root pada host Anda. gVisor melindungi host dari kode di dalam sandbox. Tidak ada perlindungan terhadap daemon atau pihak yang memegang tokennya. Karena itu, mesin yang menjalankan Dormice sebaiknya hanya digunakan untuk keperluan tersebut. Jika agent Anda juga mengakses tools melalui MCP (model context protocol), simpan server MCP pada VPS terpisah karena alasan yang sama.
Berapa banyak sandbox yang dapat ditampung dalam 4 GB dan 8 GB?
Dua hal menggunakan memori: penggunaan dasar host itu sendiri dan working set setiap sandbox yang sedang aktif. Sisakan sekitar 1 GB untuk Ubuntu, Docker, dan daemon, lalu bagi sisa memori dengan penggunaan aktual salah satu sandbox Anda. Sandbox yang menjalankan skrip Python untuk membaca beberapa file biasanya menggunakan sekitar 200 hingga 300 MiB. Sandbox yang menjalankan compiler atau rangkaian pengujian lengkap dapat menggunakan lebih dari 1 gibibyte.
The data behind this chart
[
{
"host": "4 GB VPS",
"active_at_512_mib": 6,
"active_at_1_gib": 3,
"frozen_on_16gb_swap": 16
},
{
"host": "8 GB VPS",
"active_at_512_mib": 14,
"active_at_1_gib": 7,
"frozen_on_16gb_swap": 16
}
]VPS 4 GB dapat menjalankan sekitar 6 sandbox secara bersamaan jika setiap sandbox menggunakan 512 MiB, atau 3 jika setiap sandbox menggunakan 1 gibibyte penuh. VPS 8 GB dapat menjalankan 14 dan 7. Angka tersebut adalah batas untuk pekerjaan konkuren dan merupakan hasil perhitungan, bukan hasil benchmark. Karena itu, monitor free -m saat beban Anda sendiri berjalan.
Sandbox yang dibekukan dibatasi oleh swap, bukan RAM. Inilah tujuan utama desain tersebut. Sandbox yang dibekukan saat menggunakan 1 gibibyte akan tetap menggunakan kira-kira jumlah tersebut di swap dan hampir tidak menggunakan memori resident. Dengan demikian, swapfile default installer berukuran 16 GB dapat menampung sekitar 16 sandbox. Setelah itu, sandbox perlu dipindahkan ke status berhenti, yang hanya menggunakan ruang disk. Disk adalah batas jangka panjang yang sebenarnya: setiap sandbox menyimpan filesystem-nya, dan beberapa lusin agent yang masing-masing memiliki direktori node_modules akan memenuhi volume kecil jauh sebelum penggunaan memori menjadi masalah.
Freeze, stop, archive: pengaturan siklus hidup
Default-nya adalah freeze setelah idle selama 10 menit, stop setelah 3 hari, dan archive setelah 7 hari jika archiving dikonfigurasi. Menetapkan stopAfterSeconds ke null akan menghasilkan resident agent: agent dapat melakukan freeze saat idle dan tidak pernah melakukan cold start.
Archiving bersifat opsional, dan daemon menyatakannya secara eksplisit. Tetapkan keempat variabel DORMICE_S3_*, lalu disk sandbox yang berstatus stopped dikemas dengan tar dan zstd, dikirim ke bucket yang kompatibel dengan S3, kemudian dibebaskan dari penyimpanan lokal. Bucket tersebut dapat berupa bucket MinIO yang Anda host sendiri pada mesin lain milik Anda. Jika variabel tersebut dibiarkan unset, sandbox akan tetap berada dalam status stopped, dan kebijakan yang meminta archive akan ditolak, bukan diabaikan secara diam-diam. Proses restore terlihat jelas, bukan berlangsung secara diam-diam: acquire berikutnya segera mengembalikan status restoring dan nilai progres, lalu beralih ke ready setelah disk dipulihkan.
Haruskah Anda mengandalkannya sekarang?
Jawaban singkat: jangan untuk apa pun yang tidak dapat Anda bangun ulang. Commit pertama di repository bertanggal 8 July 2026. Per 4 August 2026, repository tersebut memiliki 446 stars, 37 forks, lisensi Apache-2.0, dan sama sekali belum memiliki release bertag. Baris status di README sendiri menyatakan bahwa belum ada bagian yang siap digunakan di production.
Kombinasi ini menimbulkan risiko tertentu. Kode dapat berubah sewaktu-waktu karena installer mengikuti main. Antarmukanya masih dalam tahap pemantapan. Inilah sebabnya verb untuk operasi penghapusan memiliki dua nama berbeda dalam dua file di repository yang sama. Selain itu, project yang baru berusia empat minggu dapat berhenti begitu saja karena tidak ada ketentuan lisensi yang mewajibkan siapa pun untuk melanjutkannya.
Hal yang membuat risiko ini masih dapat ditangani adalah kompatibilitas E2B. Aplikasi Anda berkomunikasi dengan protocol yang memiliki implementasi hosted, sehingga jika pengembangan Dormice terhenti, Anda cukup mengubah dua URL dan tetap dapat bekerja. Tulis agent Anda untuk menggunakan interface E2B, bukan native API, agar opsi untuk berpindah tetap tersedia. Package native @dormice/sdk juga belum tersedia di npm. Jadi, untuk menggunakannya, Anda harus membangunnya dari repository. Ini menjadi alasan kedua untuk memulai dengan jalur yang kompatibel.
Jalankan di lingkungan yang dapat Anda korbankan. Bangun ulang host dari script, jangan masukkan token ke prompt atau commit mana pun, dan salin data yang perlu dipertahankan dari sandbox sesuai jadwal backup Anda sendiri.
FAQ
Apakah Dormice siap digunakan di production?
Belum, dan proyek ini menyatakannya sendiri. Baris status dalam README menyebutkan bahwa belum ada bagian yang siap digunakan di production, dan per 4 August 2026, repository ini baru berusia sekitar empat minggu tanpa git tag maupun release. Jadi, belum ada nomor versi yang dapat dipatok. Installer melakukan clone branch main, sehingga setiap eksekusi mengambil commit terbaru. Catat git -C /opt/dormice rev-parse HEAD setelah setiap instalasi, dan simpan semua data penting di luar sandbox.
Apa perbedaan Dormice dengan memberikan VM disposable kepada agent saya?
VM disposable adalah mesin dengan SSH yang dibuat untuk satu sesi lalu dihapus setelahnya. Dormice adalah API eksekusi: program Anda memanggil acquire, lalu exec, kemudian menerima stdout dan exit code tanpa shell session di antaranya. VM sesuai untuk manusia atau agent yang memerlukan satu komputer secara utuh selama beberapa waktu. Dormice sesuai untuk aplikasi yang menjalankan generated code berkali-kali setiap hari dan tidak ingin menanggung setup serta teardown sebesar satu mesin pada setiap eksekusi.
Apakah E2B SDK resmi benar-benar dapat digunakan tanpa perubahan kode?
Ya, dengan perubahan konfigurasi. Arahkan apiUrl dan sandboxUrl ke /e2b/api dan /e2b/envd pada daemon Anda, lalu kirim token Dormice dengan prefix e2b_ sebagai API key. Eksekusi perintah, sesi PTY, transfer file, signed URL, dan port proxy semuanya tercakup dalam end-to-end suite proyek yang berjalan melalui package resmi. Pembuatan template adalah celah utama: e2b template build belum diimplementasikan, sehingga template berupa docker image yang Anda build dan daftarkan dengan dor template add.
Berapa banyak sandbox yang dapat dijalankan pada VPS 4 GB?
Sekitar 6 sandbox yang aktif secara bersamaan jika setiap sandbox menggunakan 512 MiB, atau 3 jika setiap sandbox menggunakan satu gibibyte penuh, setelah menyisihkan sekitar 1 GB untuk sistem operasi, Docker, dan daemon. Sandbox yang dibekukan dibatasi oleh swap. Dengan swapfile default 16 GB dari installer, sekitar 16 sandbox yang masing-masing pernah menggunakan satu gibibyte dapat disimpan dalam keadaan beku. Ukur penggunaan Anda sendiri dengan free -m dalam beban nyata, karena sandbox yang menjalankan test suite menggunakan beberapa kali lipat resource dibandingkan sandbox yang hanya menjalankan script kecil.
Mengapa Dormice memerlukan vm.swappiness yang disetel ke 100?
Membekukan sandbox berarti memindahkan memory idle-nya ke swap. gVisor menyimpan memory sandbox sebagai shared memory, dan kernel Linux tidak akan melakukan swap terhadap shared memory pada nilai swappiness default. Akibatnya, pada nilai default, proses freeze tidak mereklamasi memory apa pun dan sandbox tetap menggunakan memory penuh. Proyek ini mengukur 0 byte yang direklamasi pada nilai default dan 99.5 persen pada nilai 100. Periksa nilai efektif dengan sysctl vm.swappiness, bukan dengan membaca file konfigurasi, karena beberapa cloud image menggunakan nilai 0 secara default.