1. Soalan
Perkhidmatan pemprosesan pesanan tak segerak (asynchronous) menjadi perlahan semasa trafik puncak. Pemantauan menunjukkan throughput yang stabil menghampiri 200 req/s dan purata kependaman hujung-ke-hujung menghampiri 150 ms. Gunakan Hukum Little untuk menganggarkan permintaan dalam proses (in-flight), terangkan hubungan antara kependaman, throughput dan giliran, serta cadangkan tindakan kejuruteraan yang menghalang backlog yang tidak stabil.
2. Kekangan dan penjelasan
- Hukum Little menerangkan purata jangka panjang bagi sistem yang stabil:
L = λW, dengan L ialah purata kerja dalam sistem, λ ialah purata throughput, dan W ialah purata masa dalam sistem. - Nyatakan tetingkap pengukuran, sempadan permintaan, dan unit; lonjakan singkat atau sistem yang tidak stabil tidak boleh dianggap sebagai purata jangka panjang.
- Asingkan masa perkhidmatan, masa giliran dan masa kediaman (residence time) hujung-ke-hujung, jika tidak, saiz konkurensi dan thread-pool akan terkurang anggap.
- Jelaskan had kapasiti, dasar tamat masa (timeout), keutamaan dan kerja yang boleh digugurkan.
3. Penerbitan teras
Mendarabkan 200 req/s dengan 0.15 s menghasilkan purata L = 30 permintaan dalam sistem. Ini bukanlah maksimum 30 permintaan dan bukan konkurensi p99; ini ialah inventori purata untuk tetingkap tersebut. Jika throughput kekal malar sementara purata masa kediaman berganda, purata kerja in-flight juga berganda, yang biasanya menunjukkan giliran yang semakin meningkat atau kebergantungan yang lebih perlahan.
4. Analisis rujukan
lambda = 200 # requests / second
W = 0.150 # seconds / request
L = lambda * W # 30 requests in the system on average
if arrival_rate > sustainable_service_rate:
queue grows without a stable bound
apply_admission_control_or_scale_out()
capacity = concurrency_limit / target_latencyUkur masa kerja memasuki giliran, mula diproses dan selesai. Hukum Little boleh menganggarkan siling kapasiti kasar: dengan had konkurensi 100 dan sasaran purata masa kediaman 200 ms, throughput yang stabil adalah sekitar 500 req/s. Sediakan ruang tambahan (headroom) untuk tail latency, lonjakan dan ketidakstabilan (jitter) kebergantungan.
5. Kes lebihan beban dan pertukaran kompromi (trade-offs)
Apabila kadar ketibaan kekal melebihi kadar perkhidmatan, giliran bertambah, W meningkat, dan L meningkat, mewujudkan gelung maklum balas timeout dan percubaan semula (retries). Giliran tanpa batas (unbounded) hanya menangguhkan kegagalan; kerja mungkin tidak lagi berguna apabila ia akhirnya selesai. Gunakan bounded queues, tingkah laku fail-fast, keutamaan, pelucutan beban (load shedding), tekanan balik (backpressure), atau skala keluar (scale-out). Setiap dasar mesti menyatakan kerja apa yang digugurkan dan bagaimana pemanggil dimaklumkan.
6. Pengesahan dan kebolehcerapan (observability)
- Rekod kadar ketibaan, kadar penyiapan, kerja in-flight, serta kependaman purata dan p95/p99 mengikut tetingkap masa.
- Buat semakan silang terhadap tiga ukuran bebas
L,λ, danWuntuk mengesan ralat unit atau sempadan persampelan. - Jalankan ujian beban terkawal yang meningkatkan kadar ketibaan secara beransur-ansur dan perhatikan panjang giliran, kadar timeout dan masa pemulihan.
- Tetapkan amaran pada kedalaman giliran, usia giliran, konkurensi, kadar penolakan dan percubaan semula; sahkan seberapa cepat ia menurun selepas penskalaan atau pelucutan beban.
7. Kesilapan biasa
- Menganggap purata L sebagai had konkurensi yang tegar dan mengabaikan lonjakan, tail latency, dan taburan giliran.
- Menggunakan masa perkhidmatan dan bukannya W hujung-ke-hujung serta terlepas waktu menunggu rangkaian, kunci (lock) dan kebergantungan.
- Menyimpulkan kapasiti jangka panjang daripada sampel pendek sebelum sistem menjadi stabil.
- Menskalakan pengguna (consumers) tanpa mengehadkan pengeluar (producers), menyebabkan kebergantungan berkongsi atau giliran hiliran (downstream) terlebih beban.
8. Mata pemarkahan temu duga
Menggantikan ke dalam formula dengan betul
Calon mengekalkan ketekalan unit, mengira 200 × 0.15 = 30, dan menerangkan bahawa ini adalah purata kerja in-flight dan bukannya had mutlak.
Menentukan sempadan masa
Calon memisahkan masa giliran, perkhidmatan dan hujung-ke-hujung serta menyatakan tetingkap persampelan dan andaian kestabilan.
Mengenal pasti maklum balas lebihan beban
Calon menerangkan bagaimana kadar ketibaan melebihi kadar perkhidmatan menguatkan giliran, kependaman, percubaan semula dan konkurensi, kemudian mencadangkan kawalan berbatas (bounded).
Mengesahkan kapasiti dengan data
Calon menggunakan ujian beban, p95/p99, usia giliran, kadar penolakan dan masa pemulihan dan bukannya hanya melaporkan satu nombor purata tunggal.