VPS mendekati batas symptom, belum diagnosis Cek bottleneck Vertical Horizontal

Vertical scaling menambah kapasitas pada server yang sama, misalnya CPU atau RAM. Horizontal scaling menambah server atau instance lalu membagi workload di antara beberapa node. Keduanya bukan soal mana yang lebih modern: keputusan scaling sebaiknya mengikuti bottleneck yang sudah divalidasi, kesiapan aplikasi, kebutuhan availability, dan biaya operasional.

Transparansi AI. Artikel ini disusun dengan bantuan AI untuk riset dan drafting, kemudian ditinjau dan disunting oleh tim Sequel Cloud untuk memastikan akurasi teknis dan relevansi isi.

Intisari Artikel

  • Vertical scaling masih masuk akal ketika bottleneck memang berasal dari resource dan server yang lebih besar masih memberi headroom yang berarti.
  • Horizontal scaling mulai relevan ketika workload dapat dibagi, kebutuhan availability meningkat, atau satu instance mulai menjadi batas kapasitas maupun titik risiko.
  • Aplikasi lambat tidak otomatis membutuhkan scaling. Query, database, storage I/O, cache, network, atau aplikasi sendiri bisa menjadi akar masalah.
  • Di antara VPS yang terus dibesarkan dan multi-server architecture, dedicated compute bisa menjadi jalur lain untuk workload yang konsisten berat.
Business symptom

Gejalanya Biasanya Muncul Sebelum Istilah “Scaling” Dibicarakan

Di banyak bisnis, kebutuhan scaling tidak selalu dimulai dari capacity planning formal. Sering kali trigger-nya justru komplain user internal: ERP makin lambat, input transaksi tertunda, Finance harus menunggu data, atau Gudang tidak bisa melanjutkan proses karena aplikasi belum selesai memproses transaksi.

Beberapa sinyal yang cukup umum:

  • aplikasi lancar pada jam sepi tetapi lambat ketika banyak user aktif;
  • Admin, Finance, Gudang, Sales, atau divisi lain mulai berulang kali mengeluhkan aplikasi;
  • proses input transaksi membutuhkan waktu lebih lama;
  • request mulai timeout atau antrean worker/queue membesar;
  • CPU atau RAM sering mendekati batas;
  • restart server hanya memperbaiki kondisi sebentar;
  • satu server down membuat seluruh aplikasi ikut berhenti.
ADMIN input makin lama FINANCE menunggu data GUDANG proses ikut mundur ERP TERASA LAMBAT business symptom belum tentu server kurang besar PIC IT CEK CPU / RAM DB / query I/O / network VALIDASI
Komplain lintas divisi menunjukkan dampak operasional yang nyata. Garis merah menunjukkan jalur masalah; keputusan teknis baru dibuat setelah PIC IT memvalidasi penyebabnya.
Gejala bukan diagnosis. CPU tinggi, RAM hampir penuh, atau user komplain aplikasi lambat adalah alasan untuk mengecek — bukan bukti otomatis bahwa server harus di-upgrade.
Konsep dasar

Apa Itu Vertical Scaling dan Horizontal Scaling?

Vertical Scaling

Menambah resource pada server atau instance yang sama, misalnya CPU, RAM, atau storage.

Bahasa sederhananya: mesin yang sama dibuat lebih besar.

Horizontal Scaling

Menambah server atau instance, lalu workload dibagi di antara beberapa node.

Bahasa sederhananya: pekerjaan dibagi ke lebih dari satu mesin.

VERTICAL APP SERVER CPU / RAM ditambah satu instance, kapasitas lebih besar HORIZONTAL LOAD BALANCER request APP SERVER A instance 1 APP SERVER B instance 2 APP SERVER C instance 3 request dibagi ke beberapa instance
Vertical scaling menambah kapasitas pada satu application server. Horizontal scaling menambah instance yang jelas perannya dan membagi request melalui load balancer.

Referensi konsep autoscaling dan load balancing: Kubernetes Documentation dan NGINX Documentation.

Diagnose before prescribing

Sebelum Memilih Vertical atau Horizontal Scaling, Cek Bottleneck-nya Dulu

Aplikasi lambat belum tentu berarti kapasitas server kurang. Bottleneck bisa berasal dari resource, database, query, storage I/O, cache, network, atau application process.

Capacity bottleneck baru cukup layak dipercaya ketika metric tinggi muncul konsisten bersama workload yang relevan, berkorelasi dengan penurunan performa yang dirasakan, dan penyebab lain yang masuk akal sudah diperiksa. Satu snapshot CPU 90% atau RAM hampir penuh belum cukup menjadi diagnosis.

Keluhan / gejala Monitoring Root cause Pilih tindakan

Minimal cek:

  • CPU utilization dan proses yang memakai CPU;
  • RAM, swap, serta memory per process;
  • storage I/O dan latency;
  • database behavior, query, connection, dan cache;
  • network dan external dependency;
  • peak load dibanding average load;
  • pola pertumbuhan workload.
Prinsipnya: jangan membeli resource sebelum cukup yakin resource memang menjadi bagian dari masalah.
Vertical scaling

Kapan Vertical Scaling Masih Masuk Akal?

1. Bottleneck memang berasal dari resource

CPU yang terus tinggi saat workload legitimate meningkat, atau memory pressure yang konsisten setelah process abnormal disingkirkan, dapat menjadi indikasi bahwa tambahan resource layak diuji.

2. Aplikasi masih lebih nyaman berjalan di satu instance

Aplikasi internal, ERP, POS, atau aplikasi vendor sering masih menyimpan session, file, job, atau konfigurasi tertentu pada satu server. Dalam kondisi seperti ini, vertical scaling biasanya lebih sederhana daripada langsung membangun multi-server architecture.

3. Operational simplicity masih bernilai

Satu server berarti deployment, troubleshooting, monitoring, dan recovery path lebih sederhana. Kalau resource lebih besar masih memberi headroom yang cukup, complexity tambahan belum tentu perlu dibayar.

Setelah vertical scaling, validasi ulang. Bandingkan response time, queue, CPU/RAM, swap, storage I/O, dan workload pada kondisi yang sebanding. Jika resource bertambah tetapi gejala utama tidak membaik, buka kembali diagnosis sebelum melakukan upgrade berikutnya.
Warning signs

Tanda Vertical Scaling Mulai Mentok

Ukuran server bukan indikator utamanya. Pertanyaan yang lebih berguna adalah: apakah upgrade berikutnya masih memberi hasil yang sebanding?

  • upgrade terakhir memberi improvement yang semakin kecil;
  • resource sudah besar tetapi response time tidak banyak berubah;
  • workload tinggi sudah menjadi kondisi sehari-hari, bukan spike sesaat;
  • biaya VPS terus naik tetapi dedicated resource mulai layak dibandingkan;
  • satu server menjadi terlalu penting untuk seluruh proses bisnis.
Jangan terus memperbesar server secara otomatis. Jika upgrade resource tidak memberi improvement sebanding, buka kembali diagnosis karena bottleneck bisa sudah pindah ke database, storage, query, network, atau architecture.
Dua masalah berbeda

Capacity Problem dan Availability Problem Itu Berbeda

Capacity problem

CPU/RAM habis, queue membesar, atau response time turun saat workload naik.

Pertanyaan: apakah kapasitas satu server masih cukup?

Availability problem

Resource masih cukup, tetapi satu server menjadi satu-satunya tempat aplikasi berjalan.

Pertanyaan: apa yang terjadi jika server itu gagal atau maintenance?

CAPACITY AVAILABILITY CPU / RAM mendekati batas perlu tambah headroom 1 SERVER resource masih cukup gagal = semua terdampak
Tambah CPU bisa menyelesaikan masalah kapasitas, tetapi belum tentu menyelesaikan ketergantungan pada satu server.
Horizontal scaling

Kapan Horizontal Scaling Mulai Relevan?

1. Request memang sudah bisa dibagi ke beberapa instance

Ini gate utamanya. Jika Server A, B, dan C dapat menangani request user tanpa session atau data menjadi tidak konsisten, aplikasi mulai lebih siap untuk horizontal scaling. Jika state masih terikat kuat ke satu instance, architecture perlu dibereskan lebih dulu.

2. Traffic atau workload memang membutuhkan kapasitas yang lebih mudah dibagi

Workload yang berubah signifikan antara jam normal dan peak dapat menjadi alasan menambah beberapa instance hanya jika workload memang bisa didistribusikan. Traffic spike sendiri bukan bukti bahwa horizontal scaling adalah pilihan yang tepat.

3. Uptime mulai sama pentingnya dengan performa

Ketika satu application server gagal dan seluruh user kehilangan akses, redundancy mulai menjadi kebutuhan tersendiri. Multi-instance application layer dapat membantu, tetapi database, storage, dan dependency lain juga perlu dinilai agar tidak tetap menjadi single point of failure.

4. Bagian aplikasi tumbuh dengan pola yang berbeda

Frontend, worker, reporting, API, dan queue tidak selalu tumbuh bersama. Horizontal scaling memberi ruang agar bagian tertentu berkembang sendiri-sendiri bila architecture memang memungkinkan.

Hidden cost

Horizontal Scaling Bukan Sekadar “Tambah Server”

Menambah Server B di samping Server A belum otomatis membuat aplikasi horizontally scalable. Team juga perlu memikirkan request routing, session, shared storage, database connection, deployment consistency, health check, monitoring, dan failure handling.

LOAD BALANCER APP A APP B APP C SESSION / CACHE DATABASE OBSERVABILITY
Horizontal scaling menambah kapasitas sekaligus menambah komponen yang harus dikelola.
Intinya: vertical scaling menambah kapasitas pada satu server. Horizontal scaling menambah kapasitas dengan tambahan complexity karena workload dibagi ke beberapa instance.
Konsep terkait

Scalability dan Elasticity Bukan Hal yang Sama

Scalability adalah kemampuan sistem menambah kapasitas ketika workload berkembang. Elasticity adalah kemampuan kapasitas bertambah dan berkurang mengikuti perubahan demand, sering kali secara otomatis.

Contoh sederhana: mengubah server dari 4 vCPU menjadi 8 vCPU adalah scaling. Menambah replica ketika workload naik lalu menguranginya kembali ketika workload turun lebih dekat ke elasticity/autoscaling.

Kubernetes Horizontal Pod Autoscaler, misalnya, menyesuaikan jumlah replica berdasarkan metric seperti CPU, memory, atau custom metric. Lihat dokumentasi.

Root cause first

Tidak Semua Aplikasi Lambat Membutuhkan Scaling

Query / database

Menambah web server tidak banyak membantu bila semua request tetap menunggu query yang sama.

Storage I/O

Jika aplikasi menunggu disk, tambahan CPU belum tentu memberi improvement berarti.

Memory leak

Tambah RAM dapat memperpanjang waktu sebelum masalah muncul kembali, tetapi tidak memperbaiki leak.

Cache / application process

Workload yang seharusnya murah bisa membebani database atau CPU berulang kali jika cache dan worker tidak sehat.

“Belum perlu upgrade server” juga keputusan yang valid. Jika root cause ada di aplikasi, query, atau konfigurasi, memperbaiki penyebabnya lebih tepat daripada membeli resource baru.
Jalur ketiga

Ada Pilihan Lain Selain VPS Lebih Besar atau Banyak Server: Dedicated Compute

Workload bisa tetap berjalan relatif terpusat, tetapi pindah dari virtual compute ke dedicated physical compute. Jalur ini mulai relevan ketika resource VPS sudah besar, workload konsisten tinggi, database/compute terus berat, atau economics dari VPS besar mulai kurang menarik.

Artinya, pilihan tidak harus mengikuti urutan VM → banyak VM. Pada kondisi tertentu jalurnya bisa VM → VM lebih besar, VM → dedicated compute, atau VM → beberapa instance.

qMetal — Dedicated Compute untuk Workload yang Memang Membutuhkannya

Dedicated compute dengan NVMe untuk workload besar atau konsisten ketika resource fisik dedicated mulai lebih masuk akal setelah kebutuhan workload divalidasi.

Decision support

Decision Matrix: Vertical, Horizontal, Dedicated, atau Jangan Scaling Dulu?

KondisiEvaluasi Pertama
CPU/RAM benar-benar menjadi bottleneckVertical scaling
Query/database bermasalahOptimasi dulu
Storage I/O menjadi bottleneckEvaluasi storage / database
Memory leakPerbaiki aplikasi dulu
Aplikasi masih sederhana dan statefulVertical scaling biasanya lebih mudah
Workload VPS sudah konsisten sangat tinggiEvaluasi dedicated compute
VPS sudah besar dan biaya mulai kurang efisienBandingkan VM besar dengan dedicated
Traffic sering spike dan request bisa dibagiHorizontal scaling
Satu server menjadi single point of failureEvaluasi redundancy / horizontal scaling
Session dan file masih tersimpan lokalBelum siap horizontal scaling tanpa perubahan
Workload berbeda perlu tumbuh sendiri-sendiriHorizontal scaling mulai relevan
Decision translation

Cara Menjelaskan Keputusan Scaling ke Owner

PIC IT bisa saja sudah memahami masalahnya, tetapi approval budget sering datang dari orang yang tidak sehari-hari membaca metric server. Karena itu, technical finding perlu diterjemahkan menjadi dampak kerja dan alasan keputusan.

Bahasa TeknisBahasa yang Lebih Mudah Dipahami Owner
RAM saturationKapasitas memory mulai habis saat aplikasi ramai
Single point of failureKalau server ini bermasalah, semua user yang bergantung padanya ikut terdampak
Query latencyProses aplikasi terlalu lama menunggu database
Diminishing returnTambahan biaya server mulai memberi peningkatan yang makin kecil
Stateless applicationAplikasi sudah lebih siap membagi request ke beberapa server
Dedicated computeWorkload tetap terpusat, tetapi memakai resource fisik dedicated
Siap diteruskan

Forwardable Decision Memo untuk PIC IT

Format berikut dibuat agar bisa langsung disalin ke WhatsApp, email singkat, atau internal chat. Urutannya sengaja dimulai dari kondisi yang dirasakan user, lalu diterjemahkan ke pengecekan teknis, solusi, dan budget.

Template kosong
Pak/Bu, terkait performa aplikasi [Nama Aplikasi]: KONDISI YANG DIRASAKAN USER Dalam [periode], team [Admin/Finance/Gudang/dll.] beberapa kali menyampaikan bahwa [gejala yang benar-benar dirasakan]. DAMPAK KE PEKERJAAN Kondisi tersebut menyebabkan [input lebih lama / proses berikutnya tertunda / laporan terlambat / user harus menunggu / dampak lain yang memang terjadi]. YANG SUDAH DICEK TEAM IT Sudah dicek [CPU / RAM / storage I/O / database / query / cache / network / process]. Hasil sementara menunjukkan [temuan]. KESIMPULAN SEMENTARA Kondisi saat ini mengarah pada [bottleneck/penyebab] sehingga [solusi] layak menjadi langkah berikutnya. JIKA DIBIARKAN Risiko utamanya adalah [dampak operasional yang realistis], terutama ketika workload meningkat. REKOMENDASI & BUDGET Disarankan [solusi]. Estimasi tambahan budget sekitar Rp[xxx.xxx]/bulan. SETELAH IMPLEMENTASI Team akan kembali memonitor [metric/checkpoint]. Jika tidak ada improvement sesuai harapan, diagnosis akan dibuka kembali sebelum menambah resource berikutnya.
Contoh terisi — ERP lambat, RAM sering mendekati batas
Pak/Bu, terkait performa aplikasi ERP yang digunakan team Admin, Finance, dan Gudang: KONDISI YANG DIRASAKAN USER Dalam beberapa minggu terakhir, ketiga team beberapa kali menyampaikan ERP terasa lambat terutama pada jam operasional yang ramai. DAMPAK KE PEKERJAAN Input transaksi membutuhkan waktu lebih lama. Admin harus menunggu proses selesai, Finance lebih lama mendapatkan data yang dibutuhkan, dan sebagian proses Gudang ikut mundur karena harus menunggu transaksi di ERP selesai terlebih dahulu. YANG SUDAH DICEK TEAM IT Server sudah pernah direstart, tetapi setelah aktivitas kembali normal penggunaan RAM kembali tinggi dan gejala muncul lagi. Dari monitoring, database menjadi salah satu pengguna memory terbesar. Process yang berjalan juga sudah dicek dan sejauh ini tidak ditemukan process abnormal atau memory leak yang jelas menjadi penyebab utama. Volume data dan aktivitas database meningkat dibanding saat spesifikasi server awal ditentukan. KESIMPULAN SEMENTARA Kondisinya mengarah pada kapasitas memory yang mulai kurang untuk workload database saat ini. Karena itu, penambahan RAM layak diuji sebagai langkah pertama sebelum mempertimbangkan perubahan architecture yang lebih besar. JIKA DIBIARKAN ERP berisiko semakin lambat ketika aktivitas meningkat. Dampaknya bukan hanya response time, tetapi pekerjaan antar-team ikut tertunda karena Admin, Finance, dan Gudang menggunakan data dari sistem yang sama. REKOMENDASI & BUDGET Sebagai contoh, jika server saat ini memakai qVM-4 (2 vCPU, 4 GiB RAM) Rp230.000/bulan, salah satu opsi evaluasi adalah qVM-5 (4 vCPU, 8 GiB RAM) Rp430.000/bulan. Tambahan budget: sekitar Rp200.000/bulan. SETELAH IMPLEMENTASI Setelah upgrade, team akan memonitor kembali penggunaan RAM, swap, response database, storage I/O, dan waktu response aplikasi. Jika penggunaan resource membaik tetapi aplikasi tetap lambat, berarti bottleneck belum selesai dan penyebab lain perlu dievaluasi sebelum melakukan upgrade berikutnya.
Contoh bukan diagnosis universal. RAM tinggi tidak otomatis berarti perlu tambah RAM. Restart yang tidak menyelesaikan masalah juga hanya sebuah observasi. Upgrade baru masuk akal setelah pengecekan cukup menunjukkan bahwa memory memang bagian dari bottleneck.

Pada MySQL/InnoDB, buffer pool menggunakan memory untuk cache data dan index; buffer pool terlalu kecil dapat menyebabkan churn, sementara terlalu besar juga dapat mendorong swapping. Karena itu memory harus dilihat bersama workload dan konfigurasi, bukan hanya dari angka “RAM penuh”. MySQL 8.4 Reference Manual.

Istilah teknis

Glosarium

Istilah TeknisBahasa AwamMakna dalam Artikel
Vertical scalingMemperbesar server yang samaMenambah CPU, RAM, atau resource pada instance yang sudah berjalan.
Horizontal scalingMenambah serverMembagi workload ke beberapa instance/node.
BottleneckTitik yang paling membatasiKomponen yang membuat aplikasi tidak bisa memproses workload lebih cepat.
Load balancerPembagi trafficKomponen yang mendistribusikan request ke beberapa application server.
StatefulMasih bergantung pada state lokalSession/file/kondisi tertentu masih terikat ke instance tertentu.
StatelessTidak bergantung pada satu instanceRequest lebih mudah dilayani oleh instance mana pun.
Single point of failureSatu titik yang jika gagal berdampak luasSatu server/komponen menjadi satu-satunya jalur agar aplikasi tetap berjalan.
ScalabilityKemampuan bertambah kapasitasSistem dapat menangani pertumbuhan workload dengan menambah resource.
ElasticityKapasitas mengikuti naik-turun bebanResource dapat bertambah dan berkurang mengikuti demand.
Dedicated computeResource fisik dedicatedCompute fisik yang tidak berbagi layer virtual tenant seperti VPS.
Verdict

Jadi, Kapan Vertical dan Kapan Horizontal Scaling?

Vertical scaling masuk akal ketika bottleneck memang berasal dari kapasitas satu server dan resource tambahan masih memberi improvement yang berarti.

Horizontal scaling mulai masuk akal ketika workload sudah bisa dibagi, kebutuhan availability meningkat, atau ketergantungan pada satu instance mulai menjadi batas yang tidak nyaman.

Dedicated compute layak dievaluasi ketika workload tetap cocok berjalan relatif terpusat tetapi kebutuhan resource sudah besar dan konsisten.

Dan kadang keputusan terbaik justru tidak scaling dulu. Jika bottleneck ada pada query, storage, cache, konfigurasi, atau application code, memperbaiki akar masalah lebih tepat daripada membeli resource baru.

Setelah perubahan dilakukan, ukur kembali gejala dan metric yang sama. Scaling baru dianggap membantu jika hasilnya benar-benar memperbaiki bottleneck yang ingin diselesaikan.

Tujuan scaling bukan membuat infrastructure terlihat lebih besar. Tujuannya menjaga aplikasi tetap reliable, cukup cepat, dan masuk akal secara biaya untuk workload yang benar-benar dijalankan.
Pertanyaan yang sering muncul

FAQ tentang Vertical dan Horizontal Scaling

Apakah RAM 90% berarti server harus di-upgrade?

Tidak otomatis. RAM tinggi adalah sinyal untuk diperiksa, bukan diagnosis. Lihat apakah memory pressure terjadi secara konsisten saat workload legitimate, apakah swap atau latency ikut meningkat, dan apakah kondisi tersebut benar-benar berkorelasi dengan penurunan performa aplikasi.

Mana yang lebih baik, vertical scaling atau horizontal scaling?

Tidak ada yang selalu lebih baik. Vertical scaling biasanya lebih sederhana ketika aplikasi masih cocok berjalan pada satu instance dan tambahan resource masih memberi headroom yang berarti. Horizontal scaling lebih relevan ketika workload memang dapat dibagi dan architecture siap menangani beberapa instance.

Kapan dedicated compute lebih masuk akal daripada terus memperbesar VPS?

Dedicated compute layak dievaluasi ketika kebutuhan resource sudah besar dan konsisten, dedicated resource memang dibutuhkan, atau biaya dan efisiensi VPS yang semakin besar mulai kurang rasional dibanding dedicated physical compute. Keputusan tetap perlu melihat workload, storage behavior, application architecture, kebutuhan operasional, dan budget.

Apakah horizontal scaling otomatis membuat aplikasi high availability?

Tidak. Menambah beberapa application server belum otomatis menghilangkan single point of failure. Database, storage, session, load balancer, network dependency, dan komponen lain tetap perlu dievaluasi agar tidak menjadi titik kegagalan tunggal.

Apakah aplikasi lambat selalu membutuhkan scaling?

Tidak. Query, database, storage I/O, cache, network, konfigurasi, atau application code bisa menjadi bottleneck utama. Jika akar masalah ada di layer tersebut, memperbaikinya biasanya lebih tepat daripada langsung menambah resource.

Referensi teknis

Daftar Pustaka

Referensi publik di bawah hanya memuat dokumentasi teknis yang digunakan untuk mendukung konsep dalam artikel.

  1. Kubernetes Documentation. (n.d.). Horizontal Pod Autoscaling. Retrieved September 2, 2026, from https://kubernetes.io/docs/concepts/workloads/autoscaling/horizontal-pod-autoscale/
  2. NGINX. (n.d.). Using nginx as HTTP load balancer. Retrieved September 2, 2026, from https://nginx.org/en/docs/http/load_balancing.html
  3. Oracle. (n.d.). MySQL 8.4 Reference Manual: How MySQL uses memory. Retrieved September 2, 2026, from https://dev.mysql.com/doc/refman/8.4/en/memory-use.html