Fórum Root.cz
Hlavní témata => Server => Téma založeno: matej.b 21. 08. 2012, 20:21:59
-
Dobry den,
Mam problem s analyzou server-statusu, meli jsme urcite problemy ze nam apache mrznul. Snazil jsem se najit pricinu, vypada to ze postupne vsechny apache procesy prejdou do idle modu a vznikaji nove dokud neni dosazen maxclient a pak apache zamrzne.
Toto je momentalni vypis, prvnich 134 je zatim v norme, maxclient je nastaveny na 512 a serverlimit na 700.
Jakmile to zamrzne rano tak tady updatuju prispevek a pridam jak to vypadalo pri zmrznuti.
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
135-0 - 0/0/1262 . 1.18 441 0 0.0 0.00 6.74 ::1 notexist OPTIONS * HTTP/1.0
136-0 - 0/0/1446 . 0.77 371 0 0.0 0.00 8.99 ::1 notexist OPTIONS * HTTP/1.0
137-0 - 0/0/1462 . 1.84 410 0 0.0 0.00 8.05 ::1 notexist OPTIONS * HTTP/1.0
138-0 - 0/0/1410 . 0.00 529 0 0.0 0.00 8.55 ::1 notexist OPTIONS * HTTP/1.0
139-0 - 0/0/1176 . 2.73 328 0 0.0 0.00 6.70 ::1 notexist OPTIONS * HTTP/1.0
140-0 - 0/0/988 . 7.77 280 0 0.0 0.00 6.69 ::1 notexist OPTIONS * HTTP/1.0
141-0 - 0/0/1143 . 5.87 425 0 0.0 0.00 6.69 ::1 notexist OPTIONS * HTTP/1.0
142-0 - 0/0/1309 . 0.48 398 0 0.0 0.00 7.14 ::1 notexist OPTIONS * HTTP/1.0
143-0 - 0/0/978 . 1.81 248 0 0.0 0.00 5.73 ::1 notexist OPTIONS * HTTP/1.0
144-0 - 0/0/664 . 1.43 340 0 0.0 0.00 3.69 ::1 notexist OPTIONS * HTTP/1.0
145-0 - 0/0/986 . 1.55 250 0 0.0 0.00 5.14 ::1 notexist OPTIONS * HTTP/1.0
146-0 - 0/0/937 . 1.56 239 0 0.0 0.00 6.80 ::1 notexist OPTIONS * HTTP/1.0
147-0 - 0/0/840 . 2.81 894 0 0.0 0.00 4.22 ::1 notexist OPTIONS * HTTP/1.0
148-0 - 0/0/393 . 0.05 1296 0 0.0 0.00 2.08 ::1 notexist OPTIONS * HTTP/1.0
149-0 - 0/0/662 . 0.00 1315 0 0.0 0.00 3.53 ::1 notexist OPTIONS * HTTP/1.0
150-0 - 0/0/632 . 0.42 1224 0 0.0 0.00 3.56 ::1 notexist OPTIONS * HTTP/1.0
151-0 - 0/0/384 . 0.43 1268 0 0.0 0.00 1.52 ::1 notexist OPTIONS * HTTP/1.0
152-0 - 0/0/393 . 0.00 1323 0 0.0 0.00 2.07 ::1 notexist OPTIONS * HTTP/1.0
153-0 - 0/0/621 . 9.48 666 0 0.0 0.00 3.77 ::1 notexist OPTIONS * HTTP/1.0
154-0 - 0/0/295 . 0.40 1269 0 0.0 0.00 2.70 ::1 notexist OPTIONS * HTTP/1.0
155-0 - 0/0/225 . 0.42 1222 0 0.0 0.00 1.10 ::1 notexist OPTIONS * HTTP/1.0
156-0 - 0/0/422 . 2.88 3819 0 0.0 0.00 2.82 ::1 notexist OPTIONS * HTTP/1.0
157-0 - 0/0/640 . 0.36 4501 0 0.0 0.00 3.36 ::1 notexist OPTIONS * HTTP/1.0
158-0 - 0/0/327 . 2.34 4215 0 0.0 0.00 1.68 ::1 notexist OPTIONS * HTTP/1.0
159-0 - 0/0/229 . 1.31 4280 0 0.0 0.00 1.57 ::1 notexist OPTIONS * HTTP/1.0
160-0 - 0/0/322 . 0.89 4451 0 0.0 0.00 1.61 ::1 notexist OPTIONS * HTTP/1.0
161-0 - 0/0/162 . 0.10 4536 0 0.0 0.00 0.72 ::1 notexist OPTIONS * HTTP/1.0
162-0 - 0/0/277 . 0.26 4505 0 0.0 0.00 1.97 ::1 notexist OPTIONS * HTTP/1.0
163-0 - 0/0/58 . 0.15 4504 0 0.0 0.00 0.28 ::1 notexist OPTIONS * HTTP/1.0
164-0 - 0/0/105 . 0.23 8399 0 0.0 0.00 1.05 ::1 notexist OPTIONS * HTTP/1.0
165-0 - 0/0/234 . 3.42 8050 0 0.0 0.00 1.40 ::1 notexist OPTIONS * HTTP/1.0
166-0 - 0/0/226 . 3.54 8044 0 0.0 0.00 1.63 ::1 notexist OPTIONS * HTTP/1.0
167-0 - 0/0/129 . 5.53 8143 0 0.0 0.00 0.49 ::1 notexist OPTIONS * HTTP/1.0
168-0 - 0/0/94 . 0.77 8257 0 0.0 0.00 0.33 ::1 notexist OPTIONS * HTTP/1.0
169-0 - 0/0/31 . 0.46 8365 0 0.0 0.00 0.11 ::1 notexist OPTIONS * HTTP/1.0
170-0 - 0/0/15 . 0.53 18962 0 0.0 0.00 0.07 ::1 notexist OPTIONS * HTTP/1.0
171-0 - 0/0/77 . 2.03 18731 0 0.0 0.00 1.46 ::1 notexist OPTIONS * HTTP/1.0
172-0 - 0/0/6 . 0.15 19017 0 0.0 0.00 0.03 ::1 notexist OPTIONS * HTTP/1.0
173-0 - 0/0/16 . 0.65 18973 0 0.0 0.00 0.12 ::1 notexist OPTIONS * HTTP/1.0
Nevim jak tomu pomoct. Muzete mne nekdo alespon nakopnout spravnym smerem? Diky moc
-
Konfiguracni soubor by se hodil k nahlednuti...
-
Dobry den,
Mam problem s analyzou server-statusu, meli jsme urcite problemy ze nam apache mrznul. Snazil jsem se najit pricinu, vypada to ze postupne vsechny apache procesy prejdou do idle modu a vznikaji nove dokud neni dosazen maxclient a pak apache zamrzne.
Toto je momentalni vypis, prvnich 134 je zatim v norme, maxclient je nastaveny na 512 a serverlimit na 700.
Jakmile to zamrzne rano tak tady updatuju prispevek a pridam jak to vypadalo pri zmrznuti.
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
135-0 - 0/0/1262 . 1.18 441 0 0.0 0.00 6.74 ::1 notexist OPTIONS * HTTP/1.0
136-0 - 0/0/1446 . 0.77 371 0 0.0 0.00 8.99 ::1 notexist OPTIONS * HTTP/1.0
137-0 - 0/0/1462 . 1.84 410 0 0.0 0.00 8.05 ::1 notexist OPTIONS * HTTP/1.0
138-0 - 0/0/1410 . 0.00 529 0 0.0 0.00 8.55 ::1 notexist OPTIONS * HTTP/1.0
139-0 - 0/0/1176 . 2.73 328 0 0.0 0.00 6.70 ::1 notexist OPTIONS * HTTP/1.0
140-0 - 0/0/988 . 7.77 280 0 0.0 0.00 6.69 ::1 notexist OPTIONS * HTTP/1.0
141-0 - 0/0/1143 . 5.87 425 0 0.0 0.00 6.69 ::1 notexist OPTIONS * HTTP/1.0
142-0 - 0/0/1309 . 0.48 398 0 0.0 0.00 7.14 ::1 notexist OPTIONS * HTTP/1.0
143-0 - 0/0/978 . 1.81 248 0 0.0 0.00 5.73 ::1 notexist OPTIONS * HTTP/1.0
144-0 - 0/0/664 . 1.43 340 0 0.0 0.00 3.69 ::1 notexist OPTIONS * HTTP/1.0
145-0 - 0/0/986 . 1.55 250 0 0.0 0.00 5.14 ::1 notexist OPTIONS * HTTP/1.0
146-0 - 0/0/937 . 1.56 239 0 0.0 0.00 6.80 ::1 notexist OPTIONS * HTTP/1.0
147-0 - 0/0/840 . 2.81 894 0 0.0 0.00 4.22 ::1 notexist OPTIONS * HTTP/1.0
148-0 - 0/0/393 . 0.05 1296 0 0.0 0.00 2.08 ::1 notexist OPTIONS * HTTP/1.0
149-0 - 0/0/662 . 0.00 1315 0 0.0 0.00 3.53 ::1 notexist OPTIONS * HTTP/1.0
150-0 - 0/0/632 . 0.42 1224 0 0.0 0.00 3.56 ::1 notexist OPTIONS * HTTP/1.0
151-0 - 0/0/384 . 0.43 1268 0 0.0 0.00 1.52 ::1 notexist OPTIONS * HTTP/1.0
152-0 - 0/0/393 . 0.00 1323 0 0.0 0.00 2.07 ::1 notexist OPTIONS * HTTP/1.0
153-0 - 0/0/621 . 9.48 666 0 0.0 0.00 3.77 ::1 notexist OPTIONS * HTTP/1.0
154-0 - 0/0/295 . 0.40 1269 0 0.0 0.00 2.70 ::1 notexist OPTIONS * HTTP/1.0
155-0 - 0/0/225 . 0.42 1222 0 0.0 0.00 1.10 ::1 notexist OPTIONS * HTTP/1.0
156-0 - 0/0/422 . 2.88 3819 0 0.0 0.00 2.82 ::1 notexist OPTIONS * HTTP/1.0
157-0 - 0/0/640 . 0.36 4501 0 0.0 0.00 3.36 ::1 notexist OPTIONS * HTTP/1.0
158-0 - 0/0/327 . 2.34 4215 0 0.0 0.00 1.68 ::1 notexist OPTIONS * HTTP/1.0
159-0 - 0/0/229 . 1.31 4280 0 0.0 0.00 1.57 ::1 notexist OPTIONS * HTTP/1.0
160-0 - 0/0/322 . 0.89 4451 0 0.0 0.00 1.61 ::1 notexist OPTIONS * HTTP/1.0
161-0 - 0/0/162 . 0.10 4536 0 0.0 0.00 0.72 ::1 notexist OPTIONS * HTTP/1.0
162-0 - 0/0/277 . 0.26 4505 0 0.0 0.00 1.97 ::1 notexist OPTIONS * HTTP/1.0
163-0 - 0/0/58 . 0.15 4504 0 0.0 0.00 0.28 ::1 notexist OPTIONS * HTTP/1.0
164-0 - 0/0/105 . 0.23 8399 0 0.0 0.00 1.05 ::1 notexist OPTIONS * HTTP/1.0
165-0 - 0/0/234 . 3.42 8050 0 0.0 0.00 1.40 ::1 notexist OPTIONS * HTTP/1.0
166-0 - 0/0/226 . 3.54 8044 0 0.0 0.00 1.63 ::1 notexist OPTIONS * HTTP/1.0
167-0 - 0/0/129 . 5.53 8143 0 0.0 0.00 0.49 ::1 notexist OPTIONS * HTTP/1.0
168-0 - 0/0/94 . 0.77 8257 0 0.0 0.00 0.33 ::1 notexist OPTIONS * HTTP/1.0
169-0 - 0/0/31 . 0.46 8365 0 0.0 0.00 0.11 ::1 notexist OPTIONS * HTTP/1.0
170-0 - 0/0/15 . 0.53 18962 0 0.0 0.00 0.07 ::1 notexist OPTIONS * HTTP/1.0
171-0 - 0/0/77 . 2.03 18731 0 0.0 0.00 1.46 ::1 notexist OPTIONS * HTTP/1.0
172-0 - 0/0/6 . 0.15 19017 0 0.0 0.00 0.03 ::1 notexist OPTIONS * HTTP/1.0
173-0 - 0/0/16 . 0.65 18973 0 0.0 0.00 0.12 ::1 notexist OPTIONS * HTTP/1.0
Nevim jak tomu pomoct. Muzete mne nekdo alespon nakopnout spravnym smerem? Diky moc
Už ten apache moc nepoužívám, ale maxclient se vztahuje k jednomu vláknu ne? Kolik vláken běží, nedochází RAM?
-
Rano to zamrzlo pri 512 vlaknech, v error logu bylo jen
[Wed Aug 22 08:16:30 2012] [error] server reached MaxClients setting, consider raising the MaxClients setting
Normalni stav je kolem 120 vlaken a takhle extremne to vystreli jen rano, kdy rozhodne neni nejvetsi load.
Prikladam httpd.conf
User www
Group www
ServerLimit 700
MaxClients 512
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.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 log_config_module modules/mod_log_config.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.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 alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule perl_module modules/mod_perl.so
php_admin_value safe_mode off
php_admin_value display_errors on
##########
TraceEnable Off
DocumentRoot "/var/www"
<VirtualHost *:80>
php_admin_value open_basedir "/var/www"
DocumentRoot /var/www
ServerName notexist
#CustomLog "/var/httpd/logs/access_log_default" combined
php_admin_value safe_mode off
</VirtualHost>
<Directory "/var/httpd/">
AllowOverride All
Order allow,deny
Allow from all
Options -Indexes
</Directory>
NameVirtualHost *:80
Listen 80
php_admin_value upload_tmp_dir "/var/www/prd/document_root/tmp"
php_admin_value session.save_path "/var/www/prd/document_root/tmp"
#################### hostname ###################
<VirtualHost *:80>
ServerName hostname.cz
ServerAlias www.hostname.cz
DocumentRoot /var/www/prd/document_root
ErrorLog /var/log/httpd/prd-hostname-error.log
php_admin_value open_basedir "/var/www/prd/document_root"
php_admin_value mysql.default_user XXXXXXXXXXXXX
php_admin_value mysql.default_password XXXXXXXXX
php_admin_value mysql.default_host localhost
php_admin_value upload_tmp_dir "/var/www/prd/document_root/tmp"
php_admin_value session.save_path "/var/www/prd/document_root/tmp"
php_admin_value safe_mode off
php_value default_charset "utf-8"
php_value error_reporting "E_ALL"
php_flag display_errors 0
php_admin_value post_max_size 50M
php_admin_value max_input_time 1200
php_admin_value max_execution_time 1200
</VirtualHost>
<Directory "/var/www/payments">
AllowOverride AuthConfig
php_value default_charset "WINDOWS-1250"
php_admin_value mysql.default_user XXXXXXXX
php_admin_value mysql.default_password XXXXXXXX
php_admin_value mysql.default_host localhost
#php_value mysql.default_host 77.93.197.28
#php_value mysql.default_socket /var/lib/mysql/mysql.sock
php_value register_globals 0
</Directory>
<VirtualHost *:80>
ServerName payments.hostname.cz
ServerAdmin info@hostname.cz
DocumentRoot /var/www/payments
ErrorLog /var/log/httpd/payments-hostname-error.log
#CustomLog /var/log/httpd/payments-hostname-access.log combined
</VirtualHost>
<Directory "/var/www/prd_test/document_root">
Options Indexes FollowSymLinks
AllowOverride All
php_value default_charset "UTF-8"
php_value mysql.default_user XXXXXXXXXX
php_value mysql.default_password XXXXXXXXX
# php_value mysql.default_socket /var/lib/mysql/mysql.sock
php_value register_globals 0
php_flag display_errors On
php_value error_reporting "E_ALL ^ E_NOTICE"
php_value default_charset "utf-8"
</Directory>
<VirtualHost *:80>
ServerName prdtest.hostname.cz
ServerAdmin tech@hostname.cz
DocumentRoot "/var/www/prd_test/document_root"
ErrorLog /var/log/httpd/prdtest-hostname-error.log
# CustomLog /var/log/httpd/prdtest-hostname-access.log combined
</VirtualHost>
<Directory "/var/www/quality_test/document_root">
Options Indexes FollowSymLinks
AllowOverride All
php_value default_charset "UTF-8"
php_value mysql.default_user XXXXXXXXXX
php_value mysql.default_password XXXXXXXXX
# php_value mysql.default_socket /var/lib/mysql/mysql.sock
php_value register_globals 0
php_flag display_errors On
php_value error_reporting "E_ALL ^ E_NOTICE"
php_value default_charset "utf-8"
</Directory>
<VirtualHost *:80>
ServerName quatest.hostname.cz
ServerAdmin tech@hostname.cz
DocumentRoot "/var/www/quality_test/document_root"
ErrorLog /var/log/httpd/quatest-hostname-error.log
# CustomLog /var/log/httpd/quatest-hostname-access.log combined
</VirtualHost>
<Directory "/var/www/quality_dev/">
Options Indexes FollowSymLinks
AllowOverride All
php_value default_charset "UTF-8"
php_value mysql.default_user XXXXXXXX
php_value mysql.default_password XXXXXXXX
# php_value mysql.default_socket /var/lib/mysql/mysql.sock
php_value register_globals 0
php_flag display_errors On
php_value error_reporting "E_ALL ^ E_NOTICE"
php_value default_charset "utf-8"
</Directory>
<VirtualHost *:80>
ServerName quadev.hostname.cz
ServerAdmin tech@hostname.cz
DocumentRoot "/var/www/quality_dev/"
ErrorLog /var/log/httpd/quadev-hostname-error.log
# CustomLog /var/log/httpd/quadev-hostname-access.log combined
</VirtualHost>
<Directory "/var/www/prddev">
Options Indexes FollowSymLinks
AllowOverride All
php_value default_charset "UTF-8"
php_value mysql.default_user XXXXXXXX
php_value mysql.default_password XXXXXXXX
# php_value mysql.default_socket /var/lib/mysql/mysql.sock
php_value register_globals 0
php_flag display_errors On
php_value error_reporting "E_ALL ^ E_NOTICE"
php_value default_charset "utf-8"
</Directory>
<VirtualHost *:80>
ServerName prddev.hostname.cz
ServerAdmin tech@hostname.cz
DocumentRoot "/var/www/prddev/"
ErrorLog /var/log/httpd/prddev-hostname-error.log
# CustomLog /var/log/httpd/prddev-hostname-access.log combined
</VirtualHost>
<Directory "/var/www/migration">
Options Indexes FollowSymLinks
AllowOverride All
php_value default_charset "UTF-8"
php_value mysql.default_user XXXXXXXX
php_value mysql.default_password XXXXXXXX
php_value register_globals 0
php_flag display_errors On
php_value error_reporting "E_ALL ^ E_NOTICE"
php_value default_charset "utf-8"
</Directory>
<VirtualHost *:80>
ServerName quality.hostname.cz
ServerAdmin tech@hostname.cz
DocumentRoot "/var/www/quality/document_root"
ErrorLog /var/log/httpd/quality-hostname-error.log
# CustomLog /var/log/httpd/quality-hostname-access.log combined
php_value mysql.default_user XXXXXXXX
php_value mysql.default_password XXXXXXXX
php_value register_globals 0
php_flag display_errors On
php_value error_reporting "E_ALL ^ E_NOTICE"
php_value default_charset "windows-1250"
</VirtualHost>
<Directory "/var/www/forum">
Options Indexes FollowSymLinks
AllowOverride All
php_value default_charset "UTF-8"
php_value mysql.default_user XXXXXXXX
php_value mysql.default_password XXXXXXXX
php_value register_globals 0
php_flag display_errors On
php_value error_reporting "E_ALL ^ E_NOTICE"
php_value default_charset "utf-8"
</Directory>
<VirtualHost *:80>
ServerName forum.hostname.cz
ServerAdmin tech@hostname.cz
DocumentRoot "/var/www/forum/"
ErrorLog /var/log/httpd/forum-hostname-error.log
# CustomLog /var/log/httpd/forum-hostname-access.log combined
</VirtualHost>
<Directory "/var/www/hostname/galerie">
Options Indexes FollowSymLinks
AllowOverride All
php_value default_charset "UTF-8"
php_value mysql.default_user XXXXXXXX
php_value mysql.default_password XXXXXXXX
php_value register_globals 0
php_flag display_errors On
php_value error_reporting "E_ALL ^ E_NOTICE"
php_value default_charset "utf-8"
</Directory>
<VirtualHost *:80>
ServerName galerie.hostname.cz
ServerAdmin tech@hostname.cz
DocumentRoot "/var/www/hostname/galerie/"
ErrorLog /var/log/httpd/galerie-hostname-error.log
#CustomLog /var/log/httpd/galerie-hostname-access.log combined
</VirtualHost>
########################################
<IfModule mod_status.c>
<Location /srvstat>
SetHandler server-status
</Location>
</IfModule>
ExtendedStatus On
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
-
Skuste tam dat niejaky nizky keepalive, ci sa to bude spravat inak
-
Pridal jsem tam tohle, snad jsem dobre pochopil co od toho muzu ocekavat (nechal jsem default hodnoty)
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 5
-
pomohlo ?
-
prvni vec -> nginx jako proxy
druha vec -> jaky os? apc je v php povolene? (ted jsem resil problem, ze apc s apache2-mpm-prefork na debianu neni uplne kompatibilni a totalne shazuje server)
-
http://httpd.apache.org/docs/2.2/mod/mpm_common.html#serverlimit
With the prefork MPM, use this directive only if you need to set MaxClients higher than 256 (default). Do not set the value of this directive any higher than what you might want to set MaxClients to.
-
prvni vec -> nginx jako proxy
druha vec -> jaky os? apc je v php povolene? (ted jsem resil problem, ze apc s apache2-mpm-prefork na debianu neni uplne kompatibilni a totalne shazuje server)
s php5-apc jsem mel taky problem, vyresilo se to nahrazenim za php-apc
-
OS je tam Linux Centos 6 2.6.32-71.29.1.el6.x86_64
apc neni v php povoleny
o Nginx si neco prectu vypada to v pohode, jenom nevim jak tezke je to nastavit
Jinak tedy primarni problem vyresen work aroundem, kdy rozhodne keepalive pomohl plus z development prostredi se tam sekal jeden script a tak jsem ho vypnul v cronu (do scriptu se nehrabalo, ale chce to jeste analyzu). Nevim co byl primarnejsi problem, protoze vse jelo v poradku, o zadnych novinkach v kolem dne kdy to zacalo nevim.
-
ad nginx, vicemene nejak takhle
server {
listen *:80 default; ## ipv4
listen [::]:80 default ipv6only=on; ## ipv6
server_name _;
access_log off;
error_log off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_hide_header Server;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080/; ## presmerovani na tento port -> apache
}
}
jeden problem je ten, ze pak na apachi nedostanes serverovou promennou REMOTE_ADDR, pro to musis do apache nainstalovat mod_rpaf (mod_rpaf2)