SSD Nodes Learn 🎉 VPS mulai $5.50/bln
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-08-13

VPS ARM vs x86: Apa yang Sebenarnya Berubah?

VPS ARM biasanya lebih murah per core, tetapi build x86-64 tidak berjalan di arm64. Pelajari pemeriksaan kompatibilitas dan perintah untuk memastikan stack Anda.

Perubahan saat beralih ke VPS ARM

VPS ARM menjalankan Linux dan Nginx yang sama seperti VPS x86, dan biasanya biayanya lebih rendah per core. Risiko saat beralih adalah kompatibilitas. Program yang dikompilasi untuk x86-64 sama sekali tidak dapat berjalan pada arm64. Karena itu, setiap komponen software dalam stack Anda harus memiliki build arm64 atau dapat Anda build ulang.

Sebagian besar stack modern memenuhi persyaratan tersebut tanpa pekerjaan tambahan. Masalah biasanya muncul pada dua hal: image container yang hanya pernah dibuat untuk satu arsitektur, dan software closed source yang tidak menyediakan unduhan arm64. Perintah di bawah ini membantu menjawab kedua pertanyaan tersebut untuk stack Anda sendiri sebelum Anda membayar sebuah instance. Jika Anda masih menentukan jenis server yang dibutuhkan, mulai dari apa itu VPS dan perbedaannya dari shared hosting.

arm64, aarch64, amd64: arti setiap nama

Jalankan perintah berikut pada instance apa pun sebelum melakukan hal lain.

uname -m
dpkg --print-architecture
lscpu | head -n 12
getconf PAGESIZE

uname -m menampilkan aarch64 pada mesin ARM dan x86_64 pada mesin Intel atau AMD. dpkg --print-architecture menampilkan arm64 dan amd64 pada kedua jenis mesin tersebut. Kedua jawaban itu benar. Kernel Linux dan sistem pengemasan Debian memilih nama yang berbeda untuk set instruksi yang sama. Karena itu, aarch64 dan arm64 berarti satu hal, sedangkan x86_64 dan amd64 berarti hal lainnya. Docker menggunakan nama dengan gaya Debian. Karena itu, platform image ditulis sebagai linux/arm64.

Pada arm64, tidak ada baris model name dalam /proc/cpuinfo. Sebagai gantinya, Anda mendapatkan field Features. Kriptografi perangkat keras muncul di sana sebagai flag seperti aes pmull sha1 sha2. Flag tersebut adalah ARMv8 Cryptographic Extensions. Fungsinya sama seperti AES-NI pada prosesor Intel dan AMD: mempercepat TLS (transport layer security) dan enkripsi disk melalui perangkat keras. Memeriksa akselerasi perangkat keras AES pada VPS menjelaskan pengujian untuk kedua arsitektur.

Mengapa container pertama kali gagal dan seperti apa pesan errornya

Setiap manifest image Docker mencatat arsitektur tempat image tersebut dibuat. Jika Anda menarik image yang hanya memiliki manifest amd64 ke host arm64, proses pull tetap berhasil. Kegagalan terjadi saat proses pertama kali dijalankan:

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
exec /usr/local/bin/docker-entrypoint.sh: exec format error

exec format error berarti kernel menolak menjalankan file tersebut karena header ELF (executable and linkable format) mencantumkan jenis mesin yang tidak didukung oleh CPU ini. Tidak ada pengaturan yang dapat memperbaikinya. Instruksi tersebut tidak tersedia pada perangkat kerasnya.

Periksa manifest sebelum melakukan deployment:

docker buildx imagetools inspect nginx:1.27

Output tersebut mencantumkan satu baris Platform: untuk setiap image dalam daftar manifest, seperti linux/amd64 dan linux/arm64. Jika linux/arm64 tidak ada, tag tersebut tidak akan berjalan pada VPS ARM. docker manifest inspect --verbose nginx:1.27 menampilkan informasi yang sama, tetapi Docker mendokumentasikan docker manifest sebagai perintah eksperimental yang perilakunya dapat berubah antar-rilis. Karena itu, gunakan imagetools.

Untuk image yang Anda build sendiri, build kedua arsitektur dalam satu perintah lalu push daftar manifest:

docker buildx build --platform linux/amd64,linux/arm64 -t registry.example.com/app:1.4 --push .

Build untuk arsitektur lain pada satu host memerlukan emulasi mode pengguna QEMU yang terdaftar pada handler binfmt_misc milik kernel:

docker run --privileged --rm tonistiigi/binfmt --install all

Gunakan emulasi untuk build dan pengujian. Jangan gunakan emulasi untuk melayani trafik. Dokumentasi Docker menyatakan bahwa emulasi dengan QEMU "can be much slower than native builds, especially for compute-heavy tasks like compilation and compression or decompression". Karena itu, service x86 yang diemulasikan pada instance ARM dapat menghilangkan penghematan yang menjadi alasan Anda berpindah. Penyiapan host untuk kasus native identik pada kedua arsitektur: menjalankan Docker pada VPS membahasnya, dan file Compose yang sudah ada dapat digunakan tanpa perubahan setelah setiap image di dalamnya memiliki manifest arm64.

Apakah paket yang saya perlukan tersedia untuk arm64?

Ubuntu dan Debian membangun hampir seluruh arsipnya untuk arm64, sehingga apt install nginx postgresql redis-server berperilaku sama pada kedua arsitektur. Kesenjangan biasanya terdapat pada repositori pihak ketiga.

Tanyakan langsung kepada apt pada instance ARM:

apt-cache policy some-vendor-agent
apt-get install -s some-vendor-agent

Pesan apt-cache policy yang melaporkan Candidate: (none) berarti tidak ada repositori yang diaktifkan dan menerbitkan build paket tersebut untuk arsitektur ini. apt-get install -s menyimulasikan instalasi dan tidak menulis apa pun. Dalam kondisi yang sama, perintah ini berakhir dengan E: Unable to locate package.

Selanjutnya, baca output dari apt update, bukan melewatinya. Repositori vendor yang hanya mendukung amd64 menyatakan hal itu:

N: Skipping acquire of configured file 'main/binary-arm64/Packages' as repository 'https://repo.example.com/apt stable InRelease' doesn't support architecture 'arm64'

Repositori tersebut sudah dikonfigurasi dan dapat dijangkau, tetapi tidak menyediakan apa pun yang dapat diinstal oleh mesin ini. Periksa juga entri sumbernya. Baris yang dipatok dengan [arch=amd64] akan dilewati pada host arm64. Akibatnya, paket terlihat tidak tersedia, padahal penyebab sebenarnya adalah pin tersebut.

Beban kerja mana yang aman dan mana yang perlu diperiksa terlebih dahulu

Runtime terinterpretasi dan bytecode dirancang agar portabel. PHP, Python, Ruby, dan Node.js memiliki paket arm64 di distribusi utama. Go dan Rust dapat melakukan kompilasi silang ke arm64 dengan menetapkan satu target. Stack LEMP, API Node, binary Go di belakang Nginx, atau database Postgres merupakan pekerjaan umum pada arm64.

Kompilator just in time (JIT) menghasilkan kode mesin saat program berjalan, sehingga memerlukan generator kode untuk arsitektur target. Versi terbaru sudah memilikinya: OpenJDK, .NET, engine V8 di dalam Node.js, dan PyPy semuanya mendukung arm64 di Linux. Versi lama yang dipatok merupakan risiko sebenarnya. Skrip deployment yang memasang rilis runtime dari beberapa tahun lalu harus diperiksa terhadap catatan rilis tersebut untuk memastikan dukungan aarch64, bukan langsung diasumsikan akan berfungsi.

Library yang berisi assembly x86 buatan tangan atau intrinsic SSE dan AVX merupakan kasus yang lebih jarang terlihat. Sebagian besar juga memiliki jalur NEON (NEON adalah set instruksi vektor ARM) atau fallback C biasa, sehingga dapat dikompilasi dan dijalankan. Performanya dapat berbeda dari build x86 ke arah mana pun. Ukur performanya pada instance Anda, bukan memperkirakannya dari sebuah artikel.

Perangkat lunak closed source merupakan penghambat yang sebenarnya. Agent pemantauan dari vendor, driver database berlisensi, control panel komersial, atau daemon anti-virus didistribusikan sebagai binary terkompilasi. Jika vendor tidak menyediakan build arm64, tidak ada tindakan yang dapat dilakukan untuk mengatasinya. cPanel dan WHM merupakan contoh paling jelas dalam hosting: persyaratan sistemnya menyebut x86_64 dan tidak mencantumkan ARM, sehingga server control panel tetap menggunakan x86 (diperiksa pada August 2026, dan sebaiknya dibaca kembali pada halaman persyaratan milik vendor). Jika hanya hal itu yang menghambat Anda, alternatif cPanel yang layak dijalankan pada VPS adalah tempat untuk memulai. Periksa dukungan arsitektur masing-masing dengan cara yang sama.

Kernel dan ukuran halaman: bagian yang masih membedakan instance ARM

Server x86-64 hampir dapat dipertukarkan. Server ARM kurang seragam, dan perbedaannya berada di bawah lapisan aplikasi Anda.

Ukuran halaman adalah perbedaan yang paling terasa di production. Sebagian besar kernel arm64 menggunakan halaman berukuran 4 KiB, sama seperti x86-64. Sebagian lainnya menggunakan 64 KiB. Red Hat Enterprise Linux 8 untuk aarch64 merilis kernel dengan ukuran halaman 64 KiB sebagai default, sedangkan RHEL 9 mengembalikan default ke 4 KiB sambil tetap menyediakan paket kernel-64k terpisah untuk workload yang membutuhkan ukuran lebih besar. Ukuran halaman 64 KiB meningkatkan batas minimum memori untuk proses dengan banyak pemetaan kecil karena potongan terkecil yang dapat dialokasikan kernel menjadi enam belas kali lebih besar. Jalankan getconf PAGESIZE pada instance, lalu baca nilainya. Jangan hanya mengasumsikannya.

Ada beberapa perbedaan kecil lain yang perlu diketahui. Tidak ada paket microcode CPU dari sistem operasi pada arm64. Karena itu, pembaruan firmware berasal dari provider Anda, bukan dari apt. Server ARM melakukan boot melalui UEFI (unified extensible firmware interface) dan mendeskripsikan perangkat kerasnya melalui ACPI (advanced configuration and power interface). Beberapa fitur x86 tidak memiliki padanan ARM sama sekali, termasuk enkripsi memori AMD SEV dan GPU mediated Intel GVT-g.

Apakah platform server ARM sudah matang?

Dari sisi perangkat lunak, ya. Debian, Ubuntu, Fedora, dan RHEL semuanya merilis build arm64 kelas satu, dan image resmi di Docker Hub pada umumnya sudah mendukung multi-arsitektur.

Bukti terbaru yang paling jelas adalah Proxmox. Pada 5 August 2026, Proxmox mengumumkan edisi arm64 pertama Proxmox Virtual Environment yang didukung secara resmi, yaitu versi 9.2. Edisi ini menggunakan repositori paket dan siklus rilis yang sama dengan edisi x86-64. Edisi tersebut dibangun di atas Debian 13.5 dengan Linux 7.0, QEMU 11.0, LXC 7.0, dan ZFS 2.4. Konfigurasi dan tool-nya sama dengan x86-64, kecuali sejumlah kecil item khusus arsitektur.

Baca catatan keterbatasan dalam pengumuman yang sama. Catatan tersebut menunjukkan bahwa perangkat keras server ARM yang didukung secara resmi masih sangat terbatas. Proxmox memvalidasi sistem NVIDIA Grace dan NVIDIA Vera sejak hari pertama, setelah pengujian bersama NVIDIA dan Supermicro pada perangkat keras Grace Hopper. Perangkat keras ARMv8-A dan ARMv9-A berbasis UEFI lainnya mendapatkan dukungan best effort. Komputer papan tunggal yang hanya menggunakan device tree, seperti Raspberry Pi, tidak didukung. Guest hanya dapat berjalan pada node dengan arsitekturnya sendiri. Live migration hanya berfungsi antara node dengan arsitektur yang sama. Cluster dengan arsitektur campuran tidak didukung secara resmi.

Itulah kondisi sebenarnya per August 2026. Vendor hypervisor yang merilis arm64 dengan siklus rilis yang sama seperti x86-64 merupakan kemajuan nyata bagi platform ini. Daftar perangkat keras yang didukung sejak hari pertama hanya mencakup dua keluarga CPU.

Daftar periksa sebelum melakukan commit

  1. Jalankan uname -m pada instance uji dan pastikan perintah tersebut mencetak aarch64.
  2. Jalankan docker buildx imagetools inspect pada setiap image dalam file Compose dan pastikan terdapat baris platform linux/arm64 untuk masing-masing image.
  3. Jalankan apt update pada instance ARM dan baca setiap peringatan Skipping acquire yang ditampilkan.
  4. Buka halaman unduhan setiap agent closed source yang Anda gunakan, lalu cari build arm64 atau aarch64 berdasarkan namanya.
  5. Jalankan getconf PAGESIZE dan catat hasilnya sebelum menentukan ukuran memori.
  6. Jalankan benchmark Anda sendiri pada plan ARM dan plan x86 yang sedang Anda pertimbangkan.

Hal yang tidak diklaim oleh artikel ini

Kami tidak akan memberikan rasio harga terhadap performa ARM dibandingkan dengan x86. Harga per inti berbeda-beda menurut provider dan paket, dan angka yang diukur pada perangkat keras milik orang lain tidak dapat memprediksi hasil pada perangkat keras Anda. Ukur sendiri. Panduan kami untuk melakukan benchmark VPS membahas sysbench dan fio dengan metode yang dapat Anda ulangi, sedangkan biaya sebenarnya sebuah VPS membahas aspek harga dalam perbandingan ini. Penyimpanan merupakan keputusan yang terpisah dari arsitektur CPU, dan perbandingan NVMe dengan SATA SSD pada VPS membahas aspek tersebut. Jalankan pengujian yang sama pada kedua paket, gunakan beban kerja Anda sendiri jika memungkinkan, lalu jadikan hasil pengukuran Anda sebagai dasar keputusan.

FAQ

Apakah container Docker saya akan berjalan pada VPS ARM?

Container akan berjalan jika setiap image dalam stack memiliki entri linux/arm64 di manifest-nya. Periksa setiap image dengan docker buildx imagetools inspect <image> dan cari baris Platform: linux/arm64. Image resmi di Docker Hub biasanya mendukung multi-arsitektur. Image dari vendor yang lebih kecil, serta image yang Anda buat sendiri pada mesin x86, sering kali tidak mendukungnya. Untuk image Anda sendiri, lakukan build ulang dengan docker buildx build --platform linux/amd64,linux/arm64 ... --push agar satu tag dapat digunakan pada kedua arsitektur.

Apa arti exec format error pada server ARM?

Kernel mencoba mengeksekusi biner yang header ELF-nya menyatakan jenis mesin yang berbeda, lalu menolaknya. Pada host arm64, ini hampir selalu berarti biner atau image container x86-64. Docker terlebih dahulu menampilkan peringatan bahwa platform image yang diminta, linux/amd64, tidak cocok dengan platform host yang terdeteksi, linux/arm64/v8. Solusinya adalah melakukan build untuk arsitektur yang benar. Tidak ada perubahan konfigurasi yang dapat membuat biner x86-64 berjalan secara native pada ARM.

Apakah arm64 sama dengan aarch64?

Ya. Keduanya adalah dua nama untuk set instruksi ARM 64-bit. Kernel melaporkan aarch64 melalui uname -m, sedangkan sistem packaging Debian dan Ubuntu, serta string platform Docker, menggunakan arm64. Pembagian yang sama juga berlaku di sisi lain: uname -m menyatakan x86_64, sedangkan sistem packaging menyatakan amd64. Jika halaman unduhan hanya menyediakan file aarch64, file tersebut adalah file yang benar untuk mesin yang oleh dpkg --print-architecture disebut arm64.

Apakah VPS ARM lebih cepat daripada VPS x86?

Pertanyaan itu tidak memiliki jawaban umum. Rasio tunggal apa pun yang Anda baca diukur pada perangkat keras yang berbeda dari milik Anda. Kecepatan bergantung pada model CPU tertentu, jumlah core yang Anda dapatkan, cara provider menangani persaingan penggunaan sumber daya antar-tenant, serta seberapa baik workload Anda menggunakan instruksi vektor. Lakukan benchmark pada dua paket yang benar-benar sedang Anda pertimbangkan, menggunakan workload Anda sendiri jika memungkinkan, lalu bandingkan hasilnya.

Apa yang harus diperiksa sebelum memindahkan server produksi ke arm64?

Lakukan empat pemeriksaan berikut, dalam urutan ini. Pastikan setiap image container memiliki manifest arm64. Pastikan setiap repositori apt pihak ketiga menerbitkan binary-arm64. Pastikan setiap agent closed source menyediakan unduhan aarch64. Kemudian jalankan getconf PAGESIZE pada instance target karena kernel dengan page berukuran 64 KiB mengubah footprint memori proses yang memiliki banyak pemetaan kecil. Apa pun yang gagal dalam salah satu dari empat pemeriksaan tersebut menjadi alasan untuk mempertahankan server tersebut pada x86.

#arm64#cpu-architecture#vps#docker#performance