18.750 istek/sn: kesin, tekrarlanmış ve üç kat yanlış
Klavye: ← → ile gezinin, F tam ekran, O genel bakış.

Ölçüm · Yük testi
Kesin, tekrarlanmış, yanlış
18.750 istek/sn: üç tekrar birbirine yakın çıktı ve sayı üç kat yanlıştı.
Muhammet Şafak
Aynı koşu, aynı servis
İki faz, üç kat fark
| Merdiven (açık çevrim) | Ayar fazı (kapalı çevrim) | |
|---|---|---|
| Go, 4 çekirdek | 18.750 istek/sn | 55.715 istek/sn |
| Kendi içinde | Tutarlı | Tutarlı |
| Sonradan | Yanlış çıktı | Doğru çıktı |
Hangisi yanlış?
Tutarlılık doğruluk değil.
İki ölçüm de kendi içinde tutarlıydı ve hangisinin yanlış olduğunu hiçbir şey söylemiyordu.
Veriye bakınca
Tekrarlar 1.250 ile 48.000 arasında geziyordu.
Medyan 18.750'ydi, çünkü ortadaki tekrar oraya düşmüştü.
Birinci teşhis
Doğruydu ve yetmedi.
Her adımdan önce alınan CHECKPOINT'in geri yazımı ölçüm penceresine taşıyordu: 3.000 istek/sn'de yazma p99'u 10,6 ms, okuma 3,3 ms.
İkinci deneme
Beş kat ayrışma, sıfır bozuk pencere
| Hücre | Tekrar 1 | Tekrar 2 | Tekrar 3 |
|---|---|---|---|
| Go, 1 çekirdek | 1.250 | 6.500 | 3.500 |
| PHP-FPM, 1 çekirdek | 1.750 | 2.750 | 750 |
PHP-FPM, 1 çekirdek, 3.000 istek/sn
oha iki gecikme raporluyor
| Gecikme | p50 | p75 | p99 | En yavaş |
|---|---|---|---|---|
| Time to first byte | 1,42 ms | 47 ms | 191 ms | 267 ms |
| Latency-corrected | 1,44 ms | 1.539 ms | 3.718 ms | 3.819 ms |
Mekanizma
Düzeltme sınırı uçuruma çevirir
- 1Adım 1: Takvimden sayar
gönderilmesi gereken an - 2Adım 2: Cevap yavaşlar
bağlantılar dolar - 3Adım 3: Takvim kayar
her istek devralır - 4Adım 4: Uçurum
ya geçer ya ıskalar
Aramanın ölçemediği
Uçurum tekrarlar arasında yer değiştiriyor.
Üstel arama ve ikili bölme, geçme/kalmanın hızda monoton olduğunu varsayar. İkisi de doğru değildi.
Çözüm
Aramayı at, sabit hız koy
- 7Sabit hızHücre başına, her tekrarda aynı
- OyÇoğunluk kuralıTekrarların çoğu taşıdıysa taşınmış
- %115Yoklama eşiğiHer tekrardan önce
Bir yalan daha
Ana makinedeki Chromium
| Ölçü | Değer |
|---|---|
| Headless Chromium süreci | Otuz kadar |
| Toplam CPU | %1.019 |
| Docker VM'ine kalan | %94 |
| Go, 4 çekirdek | 17.490 istek/sn |
Sonuç · Go, 4 çekirdek
İki yöntem, birkaç yüzde içinde
| Ölçüm | İstek/sn | Not |
|---|---|---|
| Ayar fazı (kapalı çevrim) | 55.715 | On iki saat önce |
| Beş tekrar (sakin makine) | 55.836–57.321 | Medyan 56.571; 45/45 tekrar yoklamadan geçti |

Kendi düzeneğinize
Üç somut ekleme
- Farklı çevrimde ölçen ikinci faz ve ayrışınca koşuyu geçersiz sayan kural (bekliyor)
- Her tekrardan önce uygulama kodu çalıştırmayan bir yoklama (bekliyor)
- Tekrarın yanında ortamın kaydı (bekliyor)

Ölçümün kendisi
İkinci yol
Çıkan sayılar ve elenen denemelerin ham verisi araştırma defterinde.