TheBlood 0 Zgłoś post Napisano Październik 20, 2008 Od kilkunastu dni mam co raz większy problem, bo ilość osób online mocno wzrosła i dochodzi już nawet do 160 osób online i to na forum przemo... Niestety wówczas procesor jest obciążany w granicach 50-70%, load rośnie nawet do 3.00, no i samo forum przestaje zadowalająco działać. Mam zainstalowany eaccelerator (jako rozszerzenie php), apache i php zaktualizowane do najnowszej stabilnej dla debiana 4.0 wersji, no i przyznam szczerze, że nie mam już pomysłów jak zminimalizować obciążenie :/ Wiem, wiem, że mógłbym zmienić skrypt i stać mnie na jego zmianę, ale przemo jest najbardziej user-friendly, dlatego zależy mi na pozostaniu na tym skrypcie. Jak można zminimalizować obciążenie generowane przez apache? Oto fragmenty konfiguracji serwera (Athlon 3000+, 1GB ramu): apache2.conf: Timeout 10KeepAlive Off <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 25 MaxClients 150 MaxRequestsPerChild 50 </IfModule> php.ini: zlib.output_compression = On ;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; max_execution_time = 15 ; Maximum execution time of each script, in seconds max_input_time = 30 ; Maximum amount of time each script may spend parsing request data memory_limit = 25M ; Maximum amount of memory a script may consume (16MB) display_errors = Off log_errors = On Na niektórych vhostach "włączone" jest: Options +FollowSymLinks Czy "śledzenie" zgodności refferera z adresem obrazka stanowi jakieś dodatkowe obciążenie dla serwera, czy jest raczej niewyczuwalne? I może gdybym jakoś "okroił" system zapisywania logów, to obciążenie spadłoby nieco? LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent Z góry dziękuję za odpowiedzi i jakieś propozycje. Udostępnij ten post Link to postu Udostępnij na innych stronach
exa 0 Zgłoś post Napisano Październik 20, 2008 Pokaż ile masz wolnej pamięci (free -m), bez tego nie można za dużo napisać. Jeżeli nie jesteś pewien, czy procesor obciąża apache (bo przecież MySQL też może być wąskim gardłem) wklej /etc/mysql/my.conf Proponuję przetestować takie zmiany w konfiguracji apache: KeepAlive On MaxKeepAliveRequests 50 KeepAliveTimeout 5 <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 25 MaxClients 150 # !!! MaxRequestsPerChild 2000 </IfModule> Pokaż konfigurację eacceleratora. Pokaż listę załadowanych modułów apache. Udostępnij ten post Link to postu Udostępnij na innych stronach
TheBlood 0 Zgłoś post Napisano Październik 20, 2008 free -m: total used free shared buffers cachedMem: 992 926 65 0 62 617 -/+ buffers/cache: 247 745 Swap: 502 0 502 htop: Memory 236 / 992MBTasks 125 my.conf: # * Fine Tuning# key_buffer = 16M max_allowed_packet = 16M thread_stack = 128K ft_min_word_len = 3 table_cache = 300 # # * Query Cache Configuration # query_cache_limit = 1M query_cache_size = 16M # # * Logging and Replication # # Both location gets rotated by the cronjob. # Be aware that this log type is a performance killer. #log = /var/log/mysql/mysql.log # # Error logging goes to syslog. This is a Debian improvement # # Here you can see queries with especially long duration log_slow_queries = /var/log/mysql/mysql-slow.log long_query_time = 2 php.ini: extension="eaccelerator.so"eaccelerator.shm_size="16" eaccelerator.cache_dir="/var/cache/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" Kombinowalem z KeepAlive, ale przy włączonym load sięga już 4, 5... Udostępnij ten post Link to postu Udostępnij na innych stronach
exa 0 Zgłoś post Napisano Październik 20, 2008 Jeżeli KeepAlive nie pomaga to zostaw chociaż MaxRequestsPerChild powiększone - to powinno pomoc, chociaż trochę. eaccelerator.shm_size="32" albo 64 . Pokaż jeszcze ps aux. Udostępnij ten post Link to postu Udostępnij na innych stronach