tryme 0 Zgłoś post Napisano Kwiecień 28, 2008 Witam serdecznie, Mam problem z poprawnym ustawieniem serwera lighttpd oraz xcache, tak aby nie swapowały za bardzo. Po restarcie lighttpd zasoby pamięci wyglądają mniej więcej tak debian:~# free -m total used free shared buffers cached Mem: 6074 4986 1088 0 313 2825 -/+ buffers/cache: 1846 4227 Swap: 3812 292 3519 Po kilku, kilkunastu godzinach swap drastycznie rośnie w zależności od ustawień pamięci dla xcache (wpierw 512mb, później 256mb). Oto moje pliki konfiguracyjne: lighttpd.conf server.max-keep-alive-requests = 4server.max-keep-alive-idle = 4 server.max-read-idle = 60 server.max-write-idle = 360 server.modules += ( "mod_fastcgi" ) ## Start an FastCGI server for php4 (needs the php4-cgi package) fastcgi.server = ( ".php" => (( "bin-path" => "/usr/local/bin/php-cgi", "socket" => "/tmp/php.socket", "max-procs" => 10, "idle-timeout" => 20, "bin-environment" => ( "PHP_FCGI_CHILDREN" => "16", "PHP_FCGI_MAX_REQUESTS" => "1000" ), "bin-copy-environment" => ( "PATH", "SHELL", "USER" ), "broken-scriptfilename" => "enable" )) ) php.ini [xcache]; ini only settings, all the values here is default unless explained ; select low level shm/allocator scheme implemenation xcache.shm_scheme = "mmap" ; to disable: xcache.size=0 ; to enable : xcache.size=64M etc (any size > 0) and your system mmap allows xcache.size = 256M ; set to cpu count (cat /proc/cpuinfo |grep -c processor) xcache.count = 4 ; just a hash hints, you can always store count(items) > slots xcache.slots = 8K ; ttl of the cache item, 0=forever xcache.ttl = 0 ; interval of gc scanning expired items, 0=no scan, other values is in seconds xcache.gc_interval = 0 ; same as aboves but for variable cache xcache.var_size = 16M xcache.var_count = 2 xcache.var_slots = 8K ; default ttl xcache.var_ttl = 1 xcache.var_maxttl = 1 xcache.var_gc_interval = 300 xcache.test = Off ; N/A for /dev/zero xcache.readonly_protection = On ; for *nix, xcache.mmap_path is a file path, not directory. ; Use something like "/tmp/xcache" if you want to turn on ReadonlyProtection ; 2 group of php won't share the same /tmp/xcache ; for win32, xcache.mmap_path=anonymous map name, not file path xcache.mmap_path = "/dev/zero" ; leave it blank(disabled) or "/tmp/phpcore/" ; make sure it's writable by php (without checking open_basedir) xcache.coredump_directory = "/tmp/phpcore" ; per request settings xcache.cacher = On xcache.stat = On xcache.optimizer = On [xcache.coverager] ; per request settings ; enable coverage data collecting for xcache.coveragedump_directory and xcache_coverager_start/stop/get/clean() functions (will hurt executing performance) xcache.coverager = Off ; ini only settings ; make sure it's readable (care open_basedir) by coverage viewer script ; requires xcache.coverager=On xcache.coveragedump_directory = "/tmp/phpcore" Będę wdzięczny za wszelkie sugestie. Udostępnij ten post Link to postu Udostępnij na innych stronach
scz 0 Zgłoś post Napisano Czerwiec 11, 2008 której wersji xcache używasz? nie lepiej zrobic cachowanie w php? Udostępnij ten post Link to postu Udostępnij na innych stronach
donaldu.tusku 0 Zgłoś post Napisano Czerwiec 11, 2008 Sprawdź czy masz zainstalowaną najnowszą wersję lighttpd, bo opisywany problem jest dość dobrze znany - wyciecki pamięci w serwerach z dużym ruchem (generalnie z 1.5 nie powino być takich problemów - bo po konfiguracji widzę że to linia 1.4) Możesz także spróbować zmniejszyć PHP_FCGI_MAX_REQUESTS na wartość poniżej 500. To samo tyczy sie xcache, na forum lighttpd wyczytałem, że wiele ludzi ma z nim różngo rodzaju problemy - proponuje zastąpić eaccelerator'em (jeżeli wystarczy ci jego funkcjonalność) Udostępnij ten post Link to postu Udostępnij na innych stronach