Rulez Apache2 pe un VPS Debian 11.Am scris un API și încerc să-l testez printr-un server extern folosind ApacheBench.
Cu mpm_prefork activat și php8.0-fpm dezactivat, timpii de răspuns percentilei 95 sunt de aproximativ 30 ms. Ieșirea este după cum urmează:
Software de server: Apache/2.4.52
Nume gazdă server: XXX.XXX.com
Port server: 443
Protocol SSL/TLS: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Cheie Temp Server: X25519 253 biți
Nume server TLS: XXX.XXX.com
Calea documentului: /v1/module
Lungimea documentului: 370 de octeți
Nivel de concurență: 100
Timp necesar pentru teste: 2.783 secunde
Cereri complete: 1000
Solicitări nereușite: 0
Solicitări Keep-Alive: 1000
Total transferat: 845001 octeți
HTML transferat: 370000 de octeți
Solicitări pe secundă: 359,28 [#/sec] (medie)
Timp per solicitare: 278,336 [ms] (medie)
Timp per solicitare: 2,783 [ms] (medie, pentru toate solicitările concurente)
Rata de transfer: 296,48 [Kbytes/sec] primite
Timp de conectare (ms)
medie min [+/-sd] mediană max
Conectați: 0 14 157.2 0 2295
Procesare: 17 26 3,3 25 44
În așteptare: 17 26 3.3 25 44
Total: 17 40 157,8 25 2330
Procentul de solicitări servite într-un anumit timp (ms)
50% 25
66% 26
75% 27
80% 28
90% 30
95% 33
98% 41
99% 282
100% 2330 (cea mai lungă solicitare)
Cu mpm_prefork încă activat, dar trecând la php8.0-fpm, timpii de răspuns devin ridicoli. Ieșirea este după cum urmează:
Software de server: Apache/2.4.52
Nume gazdă server: XXX.XXX.com
Port server: 443
Protocol SSL/TLS: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,4096,256
Cheie Temp Server: X25519 253 biți
Nume server TLS: XXX.XXX.com
Calea documentului: /v1/module
Lungimea documentului: 370 de octeți
Nivel de concurență: 100
Timp necesar pentru teste: 12.595 secunde
Cereri complete: 1000
Solicitări nereușite: 0
Solicitări Keep-Alive: 0
Total transferat: 788000 octeți
HTML transferat: 370000 de octeți
Solicitări pe secundă: 79,39 [#/sec] (medie)
Timp per solicitare: 1259,549 [ms] (medie)
Timp per solicitare: 12,595 [ms] (medie, pentru toate solicitările simultane)
Rata de transfer: 61,10 [Kbytes/sec] primite
Timp de conectare (ms)
medie min [+/-sd] mediană max
Conectați: 91 1152 619.3 1108 4744
Procesare: 22 46 39.0 32 850
În așteptare: 21 43 27.4 31 491
Total: 121 1198 623,4 1146 4784
Procentul de solicitări servite într-un anumit timp (ms)
50% 1146
66% 1298
75% 1668
80% 1796
90% 1992
95% 2053
98% 2190
99% 3017
100% 4784 (cea mai lungă solicitare)
Rulez Apache/2.4.52 (Debian) și PHP 8.0.14 (cli). Scopul este să încep să folosesc mpm_event în loc de mpm_prefork, pentru a activa o mulțime de conexiuni simultane pentru API-ul meu. Totuși, nu pot începe să fac asta cu astfel de timpi de încărcare.
Cum pot trece la php-fpm, fără a-mi strica timpii de încărcare?
Setările mele php-fpm sunt după cum urmează:
pm.max_children = 844
pm.start_servers = 16
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 1000