Žao mi je, nov sam i izbrisao sam svoje pitanje misleći da sam objavio neke informacije koje ne bih smio. Još jednom objavljujem uređeno pitanje:

Na našoj web stranici php5-fpm brine o php pozivima upućenima u pregledniku U posljednje vrijeme primamo puno prekida / 504s. Sada sam provjerio php5-fpm zapisnike kako bi se povezao s vremenskim oznakama 504 u - našim pristupnim zapisnicima i evo što sam dobio u php5-fpm zapisnicima:

UPOZORENJE: [pool www] poslužitelj dostigao je postavku pm.max_children (5), razmislite o podizanju

Imajte na umu da php5-fpm nije mogao obraditi veze jer ima trenutno ograničenje pm.max_children postavljeno samo na 5 (molimo pogledajte dolje) i premalo je prema našem radnom opterećenju:

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

Moje pitanje je, kako mogu izračunati novu vrijednost? Imam 4 GB RAM-a, a DB radi na diff poslužitelju.

Da bismo saznali točnu vrijednost, moramo pronaći prosječnu memoriju koju koristi jedan php-fpm postupak.

Aktivni php-fpm obrađuje potrošnju memorije: [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
  • Sada, za vaš konkretni slučaj:
  • Prosječna potrošnja memorije po procesu: (111,50 + 55,60 + 52,25) / 3 = 73,12 Mb
  • Ukupna dostupna memorija = 4000 Mb, a budući da DB koristi zasebni poslužitelj, bilo bi sigurno potrošiti 3000 Mb memorije.
  • Dakle, novi brojevi pm.max_children na temelju gornjeg izračuna = 3000/74 = 40,54 ~ 40
  • Nakon postavljanja ispravne vrijednosti, u dnevnicima php-fpm ne biste trebali vidjeti pogrešku / upozorenje pm.max_children.
  • Hvala puno! Ne vidim poruke o pogrešci nakon promjene vrijednosti.

radio za vas: Charles Robertson | Želite nas kontaktirati?