İçeriğe geç

18.750 istek/sn: kesin, tekrarlanmış ve üç kat yanlış

Klavye: ← → ile gezinin, F tam ekran, O genel bakış.

Tan, eli çenesinde düşünürken

Ö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 çekirdek18.750 istek/sn55.715 istek/sn
Kendi içindeTutarlıTutarlı
SonradanYanlış çı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

Düzeltmeden sonra aynı hücrenin üç tekrarında ölçülen istek/sn
HücreTekrar 1Tekrar 2Tekrar 3
Go, 1 çekirdek1.2506.5003.500
PHP-FPM, 1 çekirdek1.7502.750750

PHP-FPM, 1 çekirdek, 3.000 istek/sn

oha iki gecikme raporluyor

Aynı ölçümde time to first byte ve latency-corrected gecikmelerin p50, p75, p99 ve en yavaş değerleri
Gecikmep50p75p99En yavaş
Time to first byte1,42 ms47 ms191 ms267 ms
Latency-corrected1,44 ms1.539 ms3.718 ms3.819 ms

Mekanizma

Düzeltme sınırı uçuruma çevirir

  1. Adım 1: Takvimden sayargönderilmesi gereken an
  2. Adım 2: Cevap yavaşlarbağlantılar dolar
  3. Adım 3: Takvim kayarher istek devralır
  4. Adım 4: Uçurumya 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

Bir koşu sırasında ana makinedeki headless Chromium süreçlerinin ölçüme etkisi
ÖlçüDeğer
Headless Chromium süreciOtuz kadar
Toplam CPU%1.019
Docker VM'ine kalan%94
Go, 4 çekirdek17.490 istek/sn

Sonuç · Go, 4 çekirdek

İki yöntem, birkaç yüzde içinde

Go, dört çekirdek: kapalı çevrimdeki ayar fazı ile sakin makinedeki beş tekrarın sonucu
Ölçümİstek/snNot
Ayar fazı (kapalı çevrim)55.715On iki saat önce
Beş tekrar (sakin makine)55.836–57.321Medyan 56.571; 45/45 tekrar yoklamadan geçti
Tan, eli çenesinde düşünürken

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)
Tan, el sallarken

Ölçümün kendisi

İkinci yol

muhammetsafak.com.tr/research/go-php-oauth2-cekirdek-basina-kapasite/

Çıkan sayılar ve elenen denemelerin ham verisi araştırma defterinde.

Paylaş, göm, indir