komar07 7 Zgłoś post Napisano Listopad 5, 2008 Witam serdecznie Jestem po świeżutkiej instalacji nowego dedyka SuperPlan BestOF z oferty OVH na centos i mam mały problem z apache jak sądzę. Mianowicie strony zawieszają się w pewnym momencie na 3-5 sekund po czym dogrywają się. Np. strona wczytuje się do połowy następuje przerwa i po 5 sekundach doczytuje się reszta. Dotyczy to większości stron na serwerze, tych które mają większą treść - tak jakby wczytywała się określona ilość danych i cięło pasmo. Na małych stronkach się tak nie dzieje. Co najdziwniejsze po restarcie httpd wszystko działa jak rakieta, zero przerwań pięknie płynnie itd. Po kilku minutach znowu zaczyna przycinać. Przykład dużej strony na serwerze: http://www.ofertymieszkan.pl Przykład małej strony na serwerze: http://motomed.com.pl/ Serwer jest postawiony tylko pod Apache nie ma na nim żadnych innych produkcyjnych usług. load 0.82 (1 mins) , 0.75 (5 mins) , 0.65 (15 mins) CPU w granicach do 10% RAM: 1GB z 4 Jakieś pomysły ? Udostępnij ten post Link to postu Udostępnij na innych stronach
webh.pl 229 Zgłoś post Napisano Listopad 5, 2008 Skofnigurowales w ogole apache czy działa na standardowych ustawienaich?? Pozdr. Udostępnij ten post Link to postu Udostępnij na innych stronach
komar07 7 Zgłoś post Napisano Listopad 5, 2008 Konfiguracja praktycznie standardowa + zwiększone limity zmiany to: KeepAlive On MaxKeepAliveRequests 500 KeepAliveTimeout 10 <IfModule prefork.c> StartServers 40 MinSpareServers 25 MaxSpareServers 100 ServerLimit 1250 MaxClients 800 MaxRequestsPerChild 2000 </IfModule> <IfModule worker.c> StartServers 1 MaxClients 800 MinSpareThreads 75 MaxSpareThreads 375 ThreadsPerChild 125 MaxRequestsPerChild 0 </IfModule> <IfModule mod_mem_cache.c> CacheEnable mem / MCacheSize 1048576 MCacheMaxObjectCount 2500 MCacheMinObjectSize 1 MCacheMaxObjectSize 26214400 </IfModule> cały konfig (wyciąłem komentarze bo się post nie mieścił): # ServerRoot "/etc/httpd" PidFile run/httpd.pid Timeout 60 KeepAlive On MaxKeepAliveRequests 500 KeepAliveTimeout 10 <IfModule prefork.c> StartServers 40 MinSpareServers 25 MaxSpareServers 100 ServerLimit 1250 MaxClients 800 MaxRequestsPerChild 2000 </IfModule> <IfModule worker.c> StartServers 1 MaxClients 800 MinSpareThreads 75 MaxSpareThreads 375 ThreadsPerChild 125 MaxRequestsPerChild 0 </IfModule> Listen 80 LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so #LoadModule ldap_module modules/mod_ldap.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so #LoadModule ext_filter_module modules/mod_ext_filter.so #LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule expires_module modules/mod_expires.so LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so #LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so #LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so #LoadModule info_module modules/mod_info.so #LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so #LoadModule actions_module modules/mod_actions.so #LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so #LoadModule proxy_module modules/mod_proxy.so #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so #LoadModule proxy_http_module modules/mod_proxy_http.so #LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule cache_module modules/mod_cache.so LoadModule suexec_module modules/mod_suexec.so #LoadModule disk_cache_module modules/mod_disk_cache.so #LoadModule file_cache_module modules/mod_file_cache.so LoadModule mem_cache_module modules/mod_mem_cache.so #LoadModule cgi_module modules/mod_cgi.so #LoadModule version_module modules/mod_version.so Include conf.d/*.conf ExtendedStatus Off User apache Group apache ServerAdmin root@localhost UseCanonicalName Off DocumentRoot "/var/www/html" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <IfModule mod_userdir.c> UserDir disable </IfModule> DirectoryIndex index.html index.html.var index.shtml index.cfm index.php index.htm AccessFileName .htaccess <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> TypesConfig /etc/mime.types DefaultType text/plain <IfModule mod_mime_magic.c> # MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic </IfModule> HostnameLookups Off ErrorLog logs/error_log LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog logs/access_log combined ServerSignature On Alias /icons/ "/var/www/icons/" <Directory "/var/www/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <IfModule mod_dav_fs.c> # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ DefaultIcon /icons/unknown.gif ReadmeName README.html HeaderName HEADER.html IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t AddLanguage ca .ca AddLanguage cs .cz .cs AddLanguage da .dk AddLanguage de .de AddLanguage el .el AddLanguage en .en AddLanguage eo .eo AddLanguage es .es AddLanguage et .et AddLanguage fr .fr AddLanguage he .he AddLanguage hr .hr AddLanguage it .it AddLanguage ja .ja AddLanguage ko .ko AddLanguage ltz .ltz AddLanguage nl .nl AddLanguage nn .nn AddLanguage no .no AddLanguage pl .po AddLanguage pt .pt AddLanguage pt-BR .pt-br AddLanguage ru .ru AddLanguage sv .sv AddLanguage zh-CN .zh-cn AddLanguage zh-TW .zh-tw AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddHandler type-map var AddType text/html .shtml AddOutputFilter INCLUDES .shtml Alias /error/ "/var/www/error/" <IfModule mod_negotiation.c> <IfModule mod_include.c> <Directory "/var/www/error"> AllowOverride None Options IncludesNoExec AddOutputFilter Includes html AddHandler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback </Directory> </IfModule> </IfModule> BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "MS FrontPage" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully BrowserMatch "^gnome-vfs/1.0" redirect-carefully BrowserMatch "^XML Spy" redirect-carefully BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps Udostępnij ten post Link to postu Udostępnij na innych stronach
Noone 19 Zgłoś post Napisano Listopad 5, 2008 Druga mi się dobrze wczytała. Pierwsza jest tak przepchana skryptami (również zewnętrznymi) że mnie wcale nie dziwi przycinka przy generowaniu. Udostępnij ten post Link to postu Udostępnij na innych stronach
exa 0 Zgłoś post Napisano Listopad 5, 2008 Czyli pewnie apache w trybie prefork. load 0.82 (1 mins) , 0.75 (5 mins) , 0.65 (15 mins) Masz wysoki load. StartServers 40 MinSpareServers 25 MaxSpareServers 100 ServerLimit 1250 MaxClients 800 Apache to nie studnia bez dna i nie skaluje się liniowo przy zwiększeniu limitów. Mocno przesadziłeś z tymi wartościami i przy większym ruchu mogą one powodować czkawki. Z resztą nie masz około 10 GB pamięci ram, żeby obsłużyć 800 równoległych forków apache. Ile osób masz maksymalnie jednocześnie online? Sprawdź czy obniżenie tych wartości nie pomoże. StartServers 16 MinSpareServers 16 MaxSpareServers 48 # ServerLimit 256 MaxClients 64 Zainstalowałeś jakiś accelerator do PHP (np. eaccelerator.net)? Sprawdź, które procesy obciążają system (polecenie top). Udostępnij ten post Link to postu Udostępnij na innych stronach
malu 460 Zgłoś post Napisano Listopad 5, 2008 Czyli pewnie apache w trybie prefork. load 0.82 (1 mins) , 0.75 (5 mins) , 0.65 (15 mins) Masz wysoki load. Może będzie, że się czepiam. Jednak uważam, że jest to mały load. Wysoki load według mnie to 10-15+(uważam za coś nie odpowiedniego, możliwe spowodowanego jakimś "ładunkiem" fork). Load do 5 można spokojnie uważać za odpowiedni, nie groźny. Po prostu pisze to, bo bez sensu szerzyć takie pierdółki :-)) Co do konfiguracji, moja propozycja: #Po co utrzymywać sesje aż 60 sekund, przecież 30 sekund powinno wystarczyć Timeout 30 KeepAlive On #Obniżymy trochę wartość MaxKeepAliveRequests 150 #Możesz próbować tak od 1-3. KeepAliveTimeout 1 #Wnioskuję, żę Twój apache to mpm-prefork. <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 30 ServerLimit 512 MaxClients 512 MaxRequestsPerChild 1000 </IfModule> Powinno być ok, ale próbuj. Udostępnij ten post Link to postu Udostępnij na innych stronach
exa 0 Zgłoś post Napisano Listopad 5, 2008 Może będzie, że się czepiam. Jednak uważam, że jest to mały load.Wysoki load według mnie to 10-15+(uważam za coś nie odpowiedniego, możliwe spowodowanego jakimś "ładunkiem" fork). Load do 5 można spokojnie uważać za odpowiedni, nie groźny. Po prostu pisze to, bo bez sensu szerzyć takie pierdółki :-)) Autor jako przykład dużej strony na serwerze podał stronę, która w rankingu Alexa na wynik, ponad 1 000 000, druga ponad 15 000 000. Możemy dyskutować na ile ranking alexa jest wiarygodny ale jak na serwer, o takiej konfiguracji sprzętowej, który serwuje wyłączeni strony WWW, które z kolei mają taką oglądalność load jest zdecydowanie za wysoki. Z resztą nie bez powodu zapytałem ile osób online rejestruje serwer. Do tego ciekawi mnie też ile użytkowników na dobę odwiedza hostowane na nim strony. [edit] Kolega ma 4 GB pamięci RAM. Możesz mi wyjaśnić sens rozstrzału pomiędzy MinSpareServers 5 a MaxClients 512? Udostępnij ten post Link to postu Udostępnij na innych stronach
arturros 0 Zgłoś post Napisano Listopad 5, 2008 Zrób xcache, wyłącz KeepAlive, spróbuj też z nginx zamiast apache... bądź połącz te dwie rzeczy, zoptymalizuj dyski, baze, połączenia i będzie śmigać. Udostępnij ten post Link to postu Udostępnij na innych stronach
malu 460 Zgłoś post Napisano Listopad 5, 2008 Jak zapewne wiesz load jest dość mało miarodajny i zależy od wielu czynników. A więc wnioskowanie czy load jest duży w stosunku do ruchu jest dużo, jest według mnie bez sensu. Ale przecież, nie będę Ci na siłę coś do głowy wbijał :-)) Jeżeli planujesz korzystać z tego serwera przez dłuższy okres to zatrudnij jakiegoś sys-admina, który Ci to okiełzna. Co do wypowiedzi nade mną. Nie wiem dlaczego ludzie sądzą, że przy treści dynamicznej, wynalazki typu nginx, lighttpd, cherokee jakoś znacząco im pomogą. Swoją drogą jak się optymalizuje dyski ? Dobra na koniec klepnę parę rad: 1- apache-mpm-worker 2- metoda działania php (fcgi, fastcgi) 3- coś co będzie kompilowało php do kodu bitowego. (np. eaccelerator) 4- nie rób tego sam, bo zaraz pojawi się nowy temat "Dziwne zachowanie po zmianie oprogramowania" Udostępnij ten post Link to postu Udostępnij na innych stronach
arturros 0 Zgłoś post Napisano Listopad 5, 2008 Pokaż vmstat i zainstaluj sysstat. Udostępnij ten post Link to postu Udostępnij na innych stronach
komar07 7 Zgłoś post Napisano Listopad 5, 2008 Dzięki panowie za sugestie, problem jest już rozwiązany. Zamulał serwer jeden skrypt PHP, ale był on na tyle nie do wychwycenia, bo był odpalany cyklicznie z crona i nie powodował obciążenia systemu poprzez CPU czy ram ale generował taka ilość danych, że dysk miał problem z zapisem tego i na moment zawieszał całą maszynę. Po wyłączeniu tego skryptu wszystko śmiga jak trzeba. Udostępnij ten post Link to postu Udostępnij na innych stronach
arturros 0 Zgłoś post Napisano Listopad 5, 2008 Sysstat wlasnie by to pokazal Dobrze, ze problem zostal rozwiazany. Udostępnij ten post Link to postu Udostępnij na innych stronach