L = λ × W: Sebuah Persegi Panjang
Hukum Little: Persamaan Paling Berguna dalam Perencanaan Kapasitas
John Little membuktikan pada tahun 1961 bahwa untuk antrian stabil apa pun, terlepas dari struktur internalnya: L = λ × W, di mana:
- L = rata-rata jumlah item dalam sistem (antrian + sedang dilayani)
- λ (lambda) = rata-rata tingkat kedatangan item per satuan waktu
- W = rata-rata waktu setiap item menghabiskan di sistem
Membaca geometri: plot tingkat kedatangan λ pada satu sumbu & waktu tinggal W pada sumbu lainnya. Produk L adalah luas persegi panjang yang mereka bentuk. Perencanaan kapasitas hidup di dalam persegi panjang ini.
Mengapa penting: dua dari tiga besaran menentukan yang ketiga. Jika Anda mengukur throughput dan latensi, Anda mengetahui okupansi. Jika Anda mengukur okupansi dan throughput, Anda mengetahui latensi. Hukum ini robust: berlaku untuk permintaan web, meja restoran, antrian supermarket, dan pipa CPU tanpa modifikasi.
Tiga contoh konkret:
- Layanan web menangani 200 permintaan/detik dengan latensi rata-rata 50 ms (0,05 s). L = 200 × 0,05 = 10 permintaan dalam penerbangan pada waktu tertentu.
- Kedai kopi melayani 60 pelanggan/jam dengan waktu tinggal rata-rata 15 menit (0,25 jam). L = 60 × 0,25 = 15 pelanggan di dalam rata-rata.
- Lini pabrik menghasilkan 100 widget/jam dengan setiap widget membutuhkan 2 jam end-to-end. L = 100 × 2 = 200 widget dalam proses.
Implikasi penyediaan: jika Anda dapat mengukur L (item dalam penerbangan bersamaan), Anda telah mengukur sistem. Jumlah thread pekerja, koneksi database, atau slot antrian semuanya berasal dari L.
Menentukan Ukuran Kumpulan Pekerja
Layanan transkoding video Anda diukur untuk tingkat kedatangan rata-rata 30 pekerjaan transkoding per menit, masing-masing membutuhkan 90 detik end-to-end. Kumpulan pekerja saat ini memiliki 30 pekerja.
Mengapa Latensi Meledak Melampaui Utilisasi 80%
Kurva Paling Penting dalam Perencanaan Kapasitas
Plot utilisasi pada sumbu x (0% hingga 100%) dan latensi rata-rata pada sumbu y. Bentuk yang muncul adalah salah satu kurva paling penting dalam operasi: menjelaskan mengapa tim menargetkan utilisasi jauh di bawah 100%, mengapa headroom yang disediakan bukan pemborosan, & mengapa sistem yang berjalan 'efisien' pada utilisasi tinggi jatuh tanpa peringatan.
Kurva antrian M/M/1: untuk sistem dengan kedatangan Poisson (acak) & waktu layanan eksponensial (acak), waktu tunggu rata-rata mengikuti:
W_q = ρ / (μ(1-ρ))
di mana ρ (rho) adalah utilisasi (0 hingga 1) & μ adalah tingkat layanan. Penyebut (1-ρ) adalah poin penting: ketika ρ mendekati 1, penyebut mendekati 0, & waktu tunggu mendekati tak terbatas.
Contoh numerik (pengganda rasio latensi vs ρ untuk M/M/1):
- ρ = 0,5: rasio latensi 1,0 (baseline)
- ρ = 0,7: rasio latensi ~2,3
- ρ = 0,8: rasio latensi ~4,0
- ρ = 0,9: rasio latensi ~9,0
- ρ = 0,95: rasio latensi ~19,0
- ρ = 0,99: rasio latensi ~99,0
Siku berada sekitar utilisasi 70-80%. Di bawah siku, menambah beban meningkatkan latensi secara lambat. Di atas siku, latensi meledak secara nonlinear. Inilah mengapa aturan SRE kanonik adalah: targetkan utilisasi steady-state di bawah 80%, jangan pernah jalankan berkelanjutan di atas 90%.
Mengapa tim ops tradisional meremehkan ini: server pada 60% CPU 'terlihat sibuk' tetapi memiliki headroom latensi yang nyaman. Server pada 90% CPU 'terlihat produktif' tetapi berada satu lonjakan beban jauh dari bencana latensi. Kebenaran geometri: kemiringan kurva adalah ancaman sebenarnya, bukan nilai y-nya saat ini.
Membaca Kurva
Tim menjalankan layanan pada utilisasi CPU 85% steady state. Latensi p99 saat ini adalah 200 ms. Mereka mempertimbangkan penambahan lalu lintas 30% untuk mengkonsolidasikan beban kerja dari layanan lain yang akan dihapuskan.
Kemiringan, Intersep, & Kerucut Perkiraan
Membaca Pertumbuhan Dari Kemiringan
Peramalan permintaan mengurangi (dalam banyak kasus) untuk menggambar garis yang tepat melalui data historis. Sifat geometri garis itu: kemiringan, intersep, & kerucut ketidakpastian, mengkodekan seluruh perkiraan.
Tren linear (y = mx + b): sesuai untuk jendela pendek atau proses yang benar-benar linear. Kemiringan m adalah tingkat pertumbuhan per satuan waktu. Intersep b adalah nilai awal. Berguna ketika pertumbuhan stabil. Cenderung meremehkan ketika prosesnya sebenarnya menggabung.
Tren eksponensial (y = b × e^(mx)): sesuai untuk pertumbuhan majemuk: adopsi viral, efek jaringan pengguna, musiman multiplikatif. Pada sumbu y skala log, pertumbuhan eksponensial menjadi linear, yang membuat estimasi kemiringan lebih mudah. Kemiringan m pada skala log adalah tingkat pertumbuhan per satuan waktu.
Piecewise linear: sesuai ketika pertumbuhan memiliki rezim yang berbeda. Startup mungkin tumbuh lambat selama 18 bulan, kemudian memiliki infleksi viral yang menghasilkan 6 bulan pertumbuhan eksplosif, kemudian plateau. Tiga segmen linear cocok lebih baik daripada kurva tunggal apa pun.
Kerucut perkiraan: estimasi pusat ditambah batas atas & bawah, digambar sebagai kerucut yang melebar ke masa depan. Lebar kerucut tumbuh dengan waktu karena ketidakpastian bertambah. Perkiraan 4 minggu mungkin memiliki batas ±10%; perkiraan 12 bulan sering memiliki ±50% atau lebih.
Dekomposisi musiman: permintaan nyata menggabungkan tren + siklus musiman + kebisingan. Perpustakaan statistik (statsmodels, Prophet) menguraikan seri menjadi tiga komponen ini, memungkinkan tren diproyeksikan terpisah dari pola musiman. Secara geometri, tren adalah drift yang mendasari, musiman adalah riak periodik di atas, & kebisingan adalah jitter sisa.
Memilih Model Tren
Anda memiliki 24 bulan volume permintaan bulanan. Bulan 1-12 tumbuh dari 1M menjadi 2M (terlihat linear, +83K/bulan). Bulan 13-18 tumbuh dari 2M menjadi 4M (lebih curam, +330K/bulan). Bulan 19-24 tumbuh dari 4M menjadi 12M (jauh lebih curam lagi). Pemasaran menegaskan fitur produk viral diluncurkan di bulan 13 mendorong infleksi.
Kapasitas vs Permintaan sebagai Geometri 2D
Plot Setiap Tim Kapasitas Hidup Di Dalamnya
Plot waktu pada sumbu x. Plot permintaan & kapasitas pada sumbu y sebagai dua garis terpisah. Celah vertikal di antara mereka pada titik waktu apa pun adalah headroom. Area 2D di antara kurva adalah amplop headroom.
Tiga bentuk referensi:
- Amplop sehat: garis kapasitas tetap nyaman di atas garis permintaan. Celahnya mungkin menyempit selama puncak tetapi tidak pernah hilang. Amplop adalah pita keselamatan.
- Amplop yang menutup: kapasitas tumbuh lebih lambat daripada permintaan. Celahnya menyempit seiring waktu. Titik persimpangan di masa depan adalah ketika sistem kehabisan headroom: tanggal tim harus menambah kapasitas.
- Amplop terbalik: permintaan melebihi kapasitas. Sistem berada di wilayah insiden. Besaran vertikal inversi adalah defisit yang harus dilayani entah bagaimana (overflow antrian, tingkat kesalahan, dampak pelanggan).
Bagan perencanaan kapasitas standar plot:
- Riwayat permintaan terbaru (garis biru solid)
- Perkiraan permintaan dengan batas (garis putus-putus + kerucut shaded)
- Kapasitas saat ini (garis hijau solid)
- Penambahan kapasitas terencana dengan tanggal pengiriman (fungsi step)
- Tanggal persimpangan di mana permintaan yang diprakirakan melintasi kapasitas saat ini: ini adalah batas waktu untuk penyediaan berikutnya
Aturan keputusan visual: jaga fungsi langkah kapasitas di atas batas atas kerucut perkiraan setiap saat. Jangan menyediakan estimasi pusat; menyediakan batas atas. Biaya over-provisioning terbatas (beberapa kapasitas menganggur); biaya under-provisioning tak terbatas (pengguna hilang, kegagalan kaskade, kerusakan reputasi).
Membaca Amplop
Bagan kapasitas Anda menunjukkan: permintaan saat ini adalah 1.500 RPS tumbuh 20% per bulan. Kapasitas saat ini adalah 2.500 RPS. Batch server baru (+1.500 RPS kapasitas) tiba dalam 8 minggu. Kerucut perkiraan memiliki batas ±15% pada cakrawala 8 minggu.
Geometri Kapasitas: Merangkum
Bentuk Yang Memprediksi Masa Depan
Anda telah berjalan melalui empat struktur geometri yang berjalan di bawah perencanaan kapasitas:
- Hukum Little (L = λ × W) sebagai area persegi panjang yang mendefinisikan okupansi steady-state
- Kurva antrian dengan sikunya pada utilisasi 80%, mengkodekan biaya nonlinear menjalankan hot
- Kemiringan tren & kerucut perkiraan yang mengubah data historis menjadi proyeksi yang dapat ditindaklanjuti
- Amplop headroom sebagai plot 2D kapasitas versus permintaan, dengan tanggal persimpangan menandai batas waktu penyediaan
Perencanaan kapasitas adalah, pada intinya visual, disiplin menjaga satu kurva dengan aman di atas kurva lainnya seiring waktu. Angka-angka adalah pakaian; bentuk membawa kebenaran. Insinyur kapasitas yang membaca kurva antrian dengan benar akan menangkap masalah yang dashboard CPU sembunyikan sampai sistem sudah terbakar.
Pelajaran pendamping tentang perencanaan kapasitas mencakup praktik: pengukuran, peramalan, tes ceiling, headroom, & penskalaan. Pelajaran ini mencakup geometri di bawah mereka. Bersama-sama mereka membentuk perancahan visual & analitik untuk menjalankan layanan yang diskalakan tanpa kejutan.