Fast-cgi kevés memóriával

Sziasztok!

A közelmúltban telepítettem egy elég kevés memóriával (256 Mb) megáldott VPS-re egy apache-ot fastcgi-vel. Mivel most kezdtem el ismerkedni a sok helyen favorizált fastcgi modullal ezért elég sok sötét folt van az ismereteimben vele kapcsolatban. Ebből adódóan időről időre érdekes jelenségek jönnek elő a szerveren. Időnként HTTP 500-at dob, aminek a hátterében PHP timeout áll a logok szerint, illetve néha lesz egy rakat zombim a fastcgi-ből. Van hogy hetekig semmi gond, de van, hogy a probléma naponta előjön, gondolom terheltség függvényében. Így a tapasztaltabbak segítségét szeretném kérni, hogy ki milyen paraméterekkel szokott fastcgi-t használni apache-al? Mik azok az általános paraméterek amiknek mindenképp érdemes lenne utána járnom, illetve mik azok a paraméterek amik fontosak lehetnek egy ennyire kevés memóriával rendelkező vasnál.

Köszönöm a válaszokat!

Hozzászólások

OFF:

Sztem ha fcgi php, akkor ne apache. Vízfejű csiga.

ILyen kevés memóriához nem tudok konkrét számokat javasolni, de nálam kb. így néz ki:

virtualhostonként:

AddHandler php5-fcgi .php .php4 .phtml
SuexecUserGroup user1 group1
Alias /cgi-bin2/ /var/www/_bin/h_user1/

a modules.d ben:

20_mod_fastcgi.conf (ez azt hiszem gyári)
ezek az érdekesek benne:


FastCgiConfig -idle-timeout 600 -maxClassProcesses 20 -flush -autoUpdate
FastCgiWrapper On

#mod_php nélkül:

AddHandler php5-fcgi .php .php4 .php5

Action php5-fcgi /cgi-bin2/php-fastcgi
DirectoryIndex index.php index.php4 index.phtml

Order Deny,Allow
Deny from All
Allow from env=REDIRECT_STATUS
Options ExecCGI
SetHandler fastcgi-script

A /var/www/_bin/h_user1/php-fastcgi így néz ki:

#!/bin/sh

PHP_FCGI_CHILDREN=5
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=500
export PHP_FCGI_MAX_REQUESTS

umask 0022
exec /usr/bin/php-cgi -d apc.shm_size=64m
#exec /usr/bin/php-cgi

Ehhez apc kell értelemszerűen, de anélkül is megy a kikommentezett exec.

A zombi processek normálisak, mert újra használódnak, ezért futva maradnak példányok. A PHP_FCGI_MAX_REQUESTS szabályozza, hogy hányszor használja újra, csak tipp, de ha 1-re állítod, akkor ahány php futás, annyiszor le is zárja. Remélem segítettem. Amiket bemásoltam ne vedd készpénznek, nekem így működik. Ha nagy hülyeség van benne, akkor várom a korrigálást nálam okosabbaktól.

AFAIK a zombi processz azt jelenti, hogy már befejezte a futását, kipucolták a memóriából, csak a szülőprocessz nem várt a befejezésre; ergó nem tudta beolvasni a gyerek kilépési kódját, amit addig is a rendszernek tartogatnia kell. Ezért megmarad a bejegyzés a processztáblában. Sok vizet nem zavar, de jelzi, hogy az apacs valahol kicsit elcsúszott.

Köszönöm a tippeket mindenkinek! Kicsit reszeltem az apache-on, meglátjuk mi lesz. Az nginx-en gondolkodtam már, egy próbát mindenképp fogok vele tenni, de előbb a jól bevált apache-al megyek még egy kört. Köszi!

Feltettem tegnap az nginx-et és nagyon durva sebesség beli javulást sikerült vele elérni. Gyakorlatilag amire szükség van azt tudja és állítólag megbízható is. Utóbbi majd vagy beigazolódik vagy megcáfolódik nálam. A configja kicsit szokatlan, de lényegesen egyszerűbb és néhány helyen praktikusabb első blikkre mint az apache volt. Köszönöm a tippet!

Ha fastcgi, akkor fpm, ha fpm + keves memoria, akkor ondemand.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal