Beklager, jeg er ny og slettede mit spørgsmål, da jeg tænkte, at jeg havde sendt nogle oplysninger, som jeg ikke skulle have. Jeg sender det redigerede spørgsmål igen:

På vores hjemmeside tager php5-fpm sig af php-opkald foretaget af browseren. Vi har modtaget mange udfald / 504s for nylig. Nu kontrollerede jeg php5-fpm-logfiler for at korrelere med tidsstemplerne på 504 in - vores adgangslogfiler, og det er hvad jeg fik i php5-fpm-logfiler:

ADVARSEL: [pool www] -serveren nåede indstillingen pm.max_children (5), overvej at hæve den

Vær opmærksom på, at php5-fpm ikke var i stand til at håndtere forbindelserne, da den har en nuværende grænse på pm.max_children, der kun er indstillet til 5 (se nedenfor) og er alt for mindre baseret på vores arbejdsbyrde:

[email protected]:~# cat /etc/php5/fpm/pool.d/www.conf | grep 'pm.max_children =' pm.max_children = 5 

Mit spørgsmål er, hvordan beregner jeg den nye værdi? Jeg har 4 GB RAM, og DB kører på en diff-server.

For at finde ud af den korrekte værdi skal vi finde den gennemsnitlige hukommelse, der bruges af en php-fpm-proces.

Aktivt php-fpm behandler hukommelsesforbrug: [email protected]:~# ps -eo size,pid,user,command --sort -size | awk '{ hr=$1/1024 ; printf('%13.2f Mb ',hr) } { for ( x=4 ; x<=NF ; x++ ) { printf('%s ',$x) } print '' }' | grep php-fpm

  • 111.50 Mb php-fpm: pool www
  • 55.60 Mb php-fpm: pool www
  • 52.25 Mb php-fpm: pool www
  • 12.45 Mb php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
  • 0.31 Mb grep php-fpm
  • Nu til din specifikke sag:
  • Gennemsnitligt hukommelsesforbrug pr. Proces: (111,50 + 55,60 + 52,25) / 3 = 73,12 Mb
  • Samlet tilgængelig hukommelse = 4000 Mb, og da DB kører en separat server, ville det være sikkert at forbruge 3000 Mb hukommelse.
  • Så det nye antal pm.max_children er baseret på ovenstående beregning = 3000/74 = 40,54 ~ 40
  • Når du har indstillet den korrekte værdi, skal du ikke se pm.max_children fejl / advarsel i dine php-fpm-logfiler.
  • Mange tak! Jeg kan ikke se fejlmeddelelserne efter ændring af værdien.

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?