Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Max. počet PHP procesů  (Přečteno 3976 krát)

bus08

  • Návštěvník
  • Příspěvků: 17
Max. počet PHP procesů
« kdy: 06 Května 2012, 16:49:06 »
Zdravím,
mohl by prosím někdo poradit, kde se dá nastavit max. počet PHP procesů?
Zkouše jsem hledat v php.ini, ale bez úspěchu.
Díky

mka

  • Závislák
  • ***
  • Příspěvků: 1907
  • Chybovat je moje.
    • Příložany Cé Zet
Re:Max. počet PHP procesů
« Odpověď #1 kdy: 06 Května 2012, 18:05:47 »
No, tohle jsem sice ještě nehledal, ale řekl bych, že to bude někde v nastavení apače...

jmp

  • Host
Re:Max. počet PHP procesů
« Odpověď #2 kdy: 06 Května 2012, 18:50:01 »
imho to není možné zařídit, protože neexistuje žádné centrální ovládání spouštění interpretace skriptů v PHP
pokud to půjde omezit, tak asi nějakým obecným způsobem (něco jako limit na procesy celkem či tak něco...)

YaD

  • Návštěvník
  • Příspěvků: 69
Re:Max. počet PHP procesů
« Odpověď #3 kdy: 06 Května 2012, 21:23:06 »
To záleží ako používaš PHP, ak ako mod_php, tak sa to nastavuje v apache - počet spustených inštancií naraz.

Ak používaš nejakú farmu na procesy (fastcgi) ako je php-fpm, tak tam sa to dá nastaviť.

bus08

  • Návštěvník
  • Příspěvků: 17
Re:Max. počet PHP procesů
« Odpověď #4 kdy: 07 Května 2012, 15:53:40 »
Pokud se jedná o VPS, tak zde je počet PHP procesorů neomezený, či je nutné limit upravit tak, jak píše YaD?

YaD

  • Návštěvník
  • Příspěvků: 69
Re:Max. počet PHP procesů
« Odpověď #5 kdy: 08 Května 2012, 13:17:34 »
Pokud se jedná o VPS, tak zde je počet PHP procesorů neomezený, či je nutné limit upravit tak, jak píše YaD?

Teoreticky neobmedzený, ale pamäť aj tak nepustí.

Apache 2 (+ mod_php)
V prípade, že používaš mod_php, treba upraviť apache2 (budem opisovať ubuntu), konkrétne súbor /etc/apache2/apache2.conf. Tu si nájdeš jeden z týchto odstavcov (záleží, čo používaš), ktoré sa môžu líšiť v číslach:

(Dá sa to upraviť aj bez toho, že používaš mod_php, aby ti server "rýchlejšie" odpovedal.)

Prefork:
Kód: [Vybrat]
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

Worker:
Kód: [Vybrat]
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

Event:
Kód: [Vybrat]
<IfModule mpm_event_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

Keď ich nájdeš, tak len pomeníš čísla, ktoré máš vysvetlené nad týmito pasážami, resp. mal by si mať. Inak odporúčam pozrieť do dokumentácie.

PHP-FPM
Ak chceš použiť niečo takéto, tak osobne môžem odporúčiť mpm_worker + php-fpm. Je to strašidelne rýchle a nehrozí problém s vláknami, keďže php-fpm spawnuje procesy a worker len prehadzuje robotu ;).

V súbore /etc/php5/fpm/pool.d/www.conf si nájdi:
Kód: [Vybrat]
pm.max_children = 10
A zmeň na "vhodnú" hodnotu. Je tam viac možností, ktoré odporúčam pozrieť. Napr. koľko procesov naraz sa vytvorí a pod. Vrelo odporúčam sa s tým pohrať.

Jediný kameň úrazu bude nastavenie apache2. Treba nainštalovať mod_fastcgi alebo mod_fcgi a pridať niečo takéto do virtualhostu (mod_fastcgi):
Kód: [Vybrat]
FastCgiExternalServer /var/www/php5.external -host 127.0.0.1:9000
AddHandler php5-fcgi .php
Action php5-fcgi /usr/lib/cgi-bin/php5.external
Alias /usr/lib/cgi-bin/ /var/www/
Vytiahnuté z: http://alexcabal.com/installing-apache-mod_fastcgi-php-fpm-on-ubuntu-server-maverick/
(Ja som napr. používal sockety, takže tam by to vyzeralo inak.)

P.S. Pre nginx som našiel niečo takéto: http://www.idolbin.com/blog/server-management/vps-setup-guide/setup-php-fpm-with-apc-on-ubuntu-10-04-for-faster-performance/
« Poslední změna: 08 Května 2012, 14:15:27 od YaD »

 

Provoz zaštiťuje spolek OpenAlt.