Падает сервер CentOS

12 3
M
На сайте с 18.10.2006
Offline
185
2954

Вот берет и падает. Произвольно - может раз в день, может 2 раза в день. А может и дня 3 отработать. Просто виснет и все. Перезагрузка помогает до след. раза.

dmesg и messages чисты - ничего плохого нет - а потом новая загрузка.

апач + нгинх - тоже чисты.

в тестовом режиме прогонял память, проц - все отлично. нагрузка сервера тоже при работе не сильно - la в пределах 0,3-0,6

чем проблему посоветуете выловить?

Кому-то - асерет-а-диброт, а кому-то - хатуль мадан. Вам выбирать!
K5
На сайте с 21.07.2010
Offline
209
#1

для начала:

параметры сервера?

конфиги апача/нгикса/мускл?

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
Glueon
На сайте с 26.07.2013
Offline
172
#2

Уточнить у ДЦ что видно на экране когда он повис. Возможно kernel panic.

Быть может в ДЦ проблемы с питанием, из-за чего серверу иногда сносит башню, но с этим достаточно сложно бороться.

Есть много IP-сетей в аренду под прокси, парсинг, рассылки (optin), vpn и хостинг. Телега: @contactroot ⚒ ContactRoot команда опытных сисадминов (/ru/forum/861038), свой LIR: сдаем в аренду сети IPv4/v6 (/ru/forum/1012475).
M
На сайте с 18.10.2006
Offline
185
#3
kgtu5:
для начала:
параметры сервера?
конфиги апача/нгикса/мускл?

сервер ксеон 8/16 64 памяти.

мускл не используется практически - на нем одна мелкая БД, которую использую сугубо в личных целях - с внешки доступа кроме меня нет.

Конфиги с большего вот. Критика принимается с радостью, просьба не пинать сильно :).

user apache;worker_processes  48;


pid /var/run/nginx.pid;


events {
worker_connections 8192;
use epoll;
}


#===========================
#100
timer_resolution 100ms;
worker_rlimit_nofile 8192;
worker_priority -5;

#===========================

http {
geoip_country /home/.../GeoIP.dat;
include /etc/nginx/mime.types;
default_type application/octet-stream;
server_names_hash_max_size 131072;
server_names_hash_bucket_size 256;

log_format main ... remote_user [$time_local]';
access_log /home/.../access.log main;
error_log /home/.../error1.log notice;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;


chunked_transfer_encoding on;

client_body_in_file_only off;
underscores_in_headers on;

keepalive_disable msie6;
keepalive_requests 100;


gzip on;
gzip_min_length 100;
gzip_buffers 64 8k;
gzip_comp_level 6;
gzip_http_version 1.1;
gzip_proxied any;
gzip_types text/plain application/xml application/x-javascript application/json text/css;
gzip_disable msie6;
gzip_vary off;


proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 64k;
proxy_ignore_client_abort off;
proxy_intercept_errors off;
proxy_read_timeout 320s;

proxy_set_header Range "";
proxy_set_header Request-Range "";

keepalive_timeout 65s;

open_file_cache max=100000 inactive=40s;
open_file_cache_valid 360s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
expires max;
directio 512K;
limit_rate 4096K;
limit_rate_after 1024K;

ignore_invalid_headers on;
reset_timedout_connection on;
client_header_timeout 30s;
client_body_timeout 55s;
send_timeout 65s;
output_buffers 16 32k;
postpone_output 1460;
connection_pool_size 4096;
large_client_header_buffers 256 32k;
client_header_buffer_size 4k;
client_body_buffer_size 64k;
request_pool_size 64k;


client_max_body_size 16M;

include /etc/nginx/nginx-vhosts.conf;

}

================================
пример: nginx-vhosts.conf

server {
server_name name.com www.name.com;
listen 99.99.99.255;
set $root_path /var/www/;
include /etc/nginx/nginx-loc.conf;

================================
далее nginx-loc.conf

if ($http_user_agent ~* "(Baiduspider|Genieo)") {
return 444;
}
if ($request_method !~ ^(GET|HEAD)$ ) {
return 444;
}


location ~* ^.+\.(jpeg|png|js|css|html|htm|swf|flv|jpg|gif|txt|xml|ico)$ {
root $root_path;
try_files $uri @fallback;
expires 6h;
error_page 404 = @fallback;
}
location / {
proxy_pass http://127.0.0.1:81;proxy_redirect off;proxy_set_header Host $host;
proxy_set_header My-Real-Ip $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}

location @fallback {
proxy_pass http://127.0.0.1:81;proxy_redirect off;proxy_set_header Host $host;
proxy_set_header My-Real-Ip $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}


================================================
================================================
==============http==============================



ServerTokens Prod

ServerRoot "/etc/httpd"

PidFile run/httpd.pid

Timeout 310


KeepAlive On


MaxKeepAliveRequests 256


KeepAliveTimeout 25


<IfModule prefork.c>
StartServers 16
MinSpareServers 10
MaxSpareServers 100
ServerLimit 4096
MaxClients 4096
MaxRequestsPerChild 10000
</IfModule>

<IfModule worker.c>
StartServers 8
MaxClients 800
MinSpareThreads 50
MaxSpareThreads 125
ThreadsPerChild 50
MaxRequestsPerChild 0
</IfModule>

LimitRequestFieldSize 16384


Listen 127.0.0.1:81




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 substitute_module modules/mod_substitute.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_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so

LoadModule rpaf_module modules/mod_rpaf-2.0.so

RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1 99.99.99.255
RPAFheader My-Real-Ip



Include conf.d/*.conf




User apache
Group apache




ServerAdmin root@localhost




UseCanonicalName Off


DocumentRoot "/var/www/html"


<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>


<Directory "/var/www/html">


Options FollowSymLinks


AllowOverride None


Order allow,deny
Allow from all

</Directory>


<IfModule mod_userdir.c>

UserDir disabled


</IfModule>



DirectoryIndex index.html index.html.var


AccessFileName .htaccess

<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>


TypesConfig /etc/mime.types


DefaultType text/plain


<IfModule mod_mime_magic.c>

MIMEMagicFile conf/magic
</IfModule>


HostnameLookups Off


EnableSendfile on



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


ServerSignature Off





<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>


<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>


IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8

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


M
На сайте с 18.10.2006
Offline
185
#4

окончание


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


LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

ForceLanguagePriority Prefer Fallback


AddDefaultCharset UTF-8

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl


AddHandler type-map var

AddType text/html .shtml
AddOutputFilter INCLUDES .shtml


<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>
<Directory /var/www/*/data/>
php_admin_flag engine off
</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


<Directory /var/www/name.com>
Options -ExecCGI -Includes
</Directory>


NameVirtualHost 127.0.0.1:81

<VirtualHost 127.0.0.1:81>
ServerName name.com
DocumentRoot /var/www/name.com
ServerAdmin webmaster@name.com
ServerAlias www.name.com
</VirtualHost>

================================================
=================sysctl.conf====================
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
#####net.ipv4.ip_forward = 0

# Controls source route verification
#####net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
#####net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
#####net.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296

# Disable IPv6 autoconf.
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.eth0.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.eth0.accept_ra = 0

net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.tcp_max_orphans=65536
net.ipv4.tcp_fin_timeout=10
net.ipv4.tcp_keepalive_time=1800
net.ipv4.tcp_keepalive_intvl=15
net.ipv4.tcp_keepalive_probes=10
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.tcp_synack_retries=1
net.ipv4.tcp_mem=50576 64768 98152
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
net.ipv4.tcp_orphan_retries=0
net.ipv4.tcp_syncookies=0
net.ipv4.netfilter.ip_conntrack_max=1048576
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_sack=1
net.ipv4.tcp_congestion_control=htcp
net.ipv4.tcp_no_metrics_save=1
net.ipv4.route.flush=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.lo.rp_filter=1
net.ipv4.conf.eth0.rp_filter=1
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.lo.accept_source_route=0
net.ipv4.conf.eth0.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
net.ipv4.ip_local_port_range=1024 65535
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_rfc1337=1
net.ipv4.ip_forward=0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_echo_ignore_all=0
net.ipv4.icmp_ignore_bogus_error_responses=1
net.core.somaxconn=20000
net.core.netdev_max_backlog=1000
net.core.rmem_default=65536
net.core.wmem_default=65536
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.netfilter.nf_conntrack_tcp_timeout_established=600
net.netfilter.nf_conntrack_max=131072
vm.swappiness=2


---------- Добавлено 30.01.2014 в 15:18 ----------

🤪 Вот такие конфиги. К слову работают по такому же шаблону на иных серверах - проблем пока нет.
K5
На сайте с 21.07.2010
Offline
209
#5

апач префорк/воркер/итк?

---------- Добавлено 30.01.2014 в 16:20 ----------

в моменты падения колличество процессов?

M
На сайте с 18.10.2006
Offline
185
#6

По нагрузке - скажем по пакетам - выглядит за прошлые сутки так - два падения - это они и есть - зависон + ребут.



---------- Добавлено 30.01.2014 в 15:25 ----------

kgtu5:
апач префорк/воркер/итк?

---------- Добавлено 30.01.2014 в 16:20 ----------

в моменты падения колличество процессов?

mpm_prefork_module

по процессам - думаю норм, а как точно посмотреть их в момент падения?

И в своп не падает. ла в норме.

K5
На сайте с 21.07.2010
Offline
209
#7

MaxClients 4096 не много?

а если все 4к апачей создадутся сервер не вскипит?

M
На сайте с 18.10.2006
Offline
185
#8
kgtu5:
MaxClients 4096 не много?
а если все 4к апачей создадутся сервер не вскипит?

Хорошее замечание - уменьшу, но там nginx отрабатывает все - на Апач не более 20-30 процессов крутится.

типичная картинко:

Андрей
На сайте с 30.09.2009
Offline
482
#9

Смотрим сколько в среднем кушает один процесс апача:

ps --no-headers -o "rss,cmd" -C httpd | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024," Mb") }'

Например 16 Mb

И умножаем 4096 на 16. Получаем 65536 Mb оперативной памяти требуется, т.е. 64 Gb. У вас есть столько?

EuroHoster.org ( https://eurohoster.org/ru/ ) - территория быстрых серверов. Выделенные серверы, VPS, SSL, домены и VPN.
M
На сайте с 18.10.2006
Offline
185
#10
WapGraf:
Смотрим сколько в среднем кушает один процесс апача:
ps --no-headers -o "rss,cmd" -C httpd | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024," Mb") }'

Например 16 Mb
И умножаем 4096 на 16. Получаем 65536 Mb оперативной памяти требуется, т.е. 64 Gb. У вас есть столько?

64 гига то есть, только во первых часть из них я под рам-диск использую - для снижения нагрузки на винт. Порядка 10 - гиг. А во вторых:

356 mb выдало по вышеприведенному запросу 🤪

Получается мне больше 100 ставить нельзя? 100 * 356 = ну что бы с запасом.

И подрезать тайм-ауты апача? Что бы быстрее закрывал соединения?

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий