İçeriğe geç
Muhammet Şafak
en

Go ve PHP: çekirdek başına kapasite

Aynı OAuth2 servisinde Go, FrankenPHP ve PHP-FPM: çekirdek başına istek, istek başına CPU, PostgreSQL yükü ve instance sayısı.

OAuth2 servisi · orta güven

Çekirdek başına istek/sn

  • 14.330GoGo 1.27.1
  • 6.415FrankenPHP1.12.7, worker modu
  • 5.152PHP-FPMPHP 8.5.10

Dört çekirdekte

Go, PHP-FPM'in 2,78 katı iş çıkarıyor.

FrankenPHP'nin 2,23 katı. Ölçüm orta güvenle yayımlandı; sayı bir doyum tavanıdır, SLO değildir.

Tavan

Dört çekirdekte istek/sn

istek/sn

  • Go57.321
  • FrankenPHP25.659
  • PHP-FPM20.606
Okuma/yazma karışımı %50/%50, PostgreSQL 17.11.

Tavan

Çekirdek sayısına göre istek/sn

Go, FrankenPHP ve PHP-FPM'in 1, 2 ve 4 çekirdekteki tavan istek/sn değerleri
ÇekirdekGoFrankenPHPPHP-FPM
116.8836.5446.218
229.44914.30611.211
457.32125.65920.606

Verim

Dört çekirdekte istek başına CPU

µs

  • Go66,77
  • FrankenPHP110,74
  • PHP-FPM187,74
Tek çekirdekte 57,8 / 82,77 / 157,07 µs. FrankenPHP'nin istek başına CPU'su PHP-FPM'den %41 düşük.

Verim

FrankenPHP çekirdeği doldurmuyor

  • 0,541 çekirdekte kullanılanGo ve PHP-FPM 0,98
  • 1,442 çekirdekte kullanılanGo 1,87, PHP-FPM 1,95
  • 2,844 çekirdekte kullanılanGo 3,83, PHP-FPM 3,87

Tavanda

Gecikme ve bellek

Üç adayın tavandaki okuma ve yazma p50 ile p99 gecikmeleri ve bellek kullanımı
Adayp50 okuma / yazmap99 okuma / yazmaRSS
Go1,81 / 2,42 ms4,69 / 5,41 ms30,4 MiB
FrankenPHP4,77 / 4,96 ms8,80 / 9,06 ms60,3 MiB
PHP-FPM6,03 / 6,24 ms8,27 / 8,45 ms60,0 MiB

Veritabanı

PostgreSQL'in payı

Her aday doyarken PostgreSQL'e düşen yazma ve okuma sayısı, kullandığı çekirdek ve istek başına CPU
Doyan adayYazma + okumaPostgreSQL çekirdeğiİstek başına CPU
Go24.930 + 32.3922,3440,75 µs
FrankenPHP12.575 + 13.0841,1143,2 µs
PHP-FPM10.128 + 10.4781,4671,07 µs

Kapasite

30.000 istek/sn için gereken çekirdek

  • 2,0Go
  • 3,3FrankenPHP
  • 5,6PHP-FPM

Kapasite

Hedef hıza göre instance sayısı

10.000 ile 100.000 istek/sn arasındaki hedefler için Go, FrankenPHP ve PHP-FPM'in gereken instance sayısı
Hedef istek/snGoFrankenPHPPHP-FPM
10.000111
20.000111
30.000122
50.000123
100.000245

Ayar

Havuz boyutu ve yanlış seçimin bedeli

Her adayın 1, 2 ve 4 çekirdekteki en iyi havuz boyutu ve en kötü havuz seçiminin throughput kaybı
AdayEn iyi havuz (1/2/4 çekirdek)En kötü seçimin bedeli
Go16 / 64 / 64%70,6
PHP-FPM8 / 16 / 32%30,7
FrankenPHP8 / 8 / 8%29,6

Okurken

Bu sayıların sınırları

  • TavanYayınlanan sayı doyum tavanıdır, SLO değildir. 45 tekrarın 45'i üreteç yoklamasından geçti.
  • OrtamBir koşuda ana makinedeki headless Chromium Go'yu 57.321 yerine 17.490 istek/sn'ye düşürdü; o koşu atıldı.
  • DiskVM diskinin fsync garantisi doğrulanmadı; mutlak yazma rakamları iyimser olabilir, karşılaştırma etkilenmez.

Paylaş ve indir

Sitede Ara

Yazı, proje ve sayfalarda arama yapmak için yazmaya başlayın.

Escile kapatPagefind ile güçlendirildi