Коллеги, добрый день.
Проблема такова:
Имеется сервер Centos7, httpd, apache, bitrixВ течение нескольких часов, нагрузка на сервер превышала норму, при этом лог апача выдавал следующее
[error] server reached MaxClients setting, consider raising the MaxClients setting
MaxClients - увеличивали до 1200 (ресурсы имеются)
Тем не менее, проблема не решилась; сайт по прежнему лежал.
Так же, в логе апача мелькали запросы с IP адресом самого сервера. Количество запросов по одним и тем же урлам доходило до 3-4 за секунду.
Продолжалось это несколько часов. Что делать? Куда копать? Сталкивался ли кто с таким недугом?
> Имеется сервер Centos7, httpd, apache, bitrixСобственно это и есть проблема :-)
> В течение нескольких часов, нагрузка на сервер превышала норму
Что значит - "нагрузка на сервер"? Что за показатель вы подразумеваете?
> при этом лог апача выдавал следующее
> [error] server reached MaxClients setting, consider raising the MaxClients settingДобро пожаловать в реальный мир, DOS, DDOS, "apache slow request attack" и прочего.
> MaxClients - увеличивали до 1200 (ресурсы имеются)
Что подразумевается под ресурсами, какой ресурс вы считаете критичным при увеличении MaxClients?
> Тем не менее, проблема не решилась; сайт по прежнему лежал.
Ессессна )
> Так же, в логе апача мелькали запросы с IP адресом самого сервера.
> Количество запросов по одним и тем же урлам доходило до 3-4
> за секунду.
> Продолжалось это несколько часов.
> Что делать?Ставить nginx
Ставить фильтры (iptables limits per ip / per subnet, connection rate)
Реализовывать детектор аномалий
Уходить под клаудфлейр.>Куда копать?
Кому-то это выгодно.
>Сталкивался ли кто с таким недугом?
"не, не думаю" (c)
Вот не так давно бизнес запустил рекламу и с приростом посещаемости LA выросло до 400%
Ниже цитирую выдержки из /etc. Может натолкнет на какие-то мысли... Каких-либо признаков DDoS на момент нагрузки - не выявлено, т.е. не замечены IP с высокой частотой обращений. Обращения по URLам совпадает с логикой и разделами на которые давалась реклама.Настройка httpd. Выдержка.
LimitRequestFieldSize 32768
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule worker.c>
StartServers 2
MaxClients 1200
MinSpareThreads 150
MaxSpareThreads 350
ThreadsPerChild 150
MaxRequestsPerChild 0
</IfModule>
-------------------------------------
настройка nginxlocation / {
proxy_connect_timeout 30;
proxy_send_timeout 3900;
proxy_read_timeout 3900;
proxy_buffer_size 128k;
proxy_buffers 16 128k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 10m;
proxy_hide_header X-Frame-Options;
--------------------------------------
less /etc/sysctl.confnet.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
vm.swappiness = 5
fs.file-max = 1500000
kernel.msgmax = 65536
kernel.msgmnb = 65536
kernel.shmall = 4294967296
kernel.shmmax = 68719476736
net.core.netdev_max_backlog = 30000
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
#net.core.somaxconn = 32000
net.core.somaxconn = 65535
net.core.wmem_max = 16777216
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_max_orphans = 400000
net.ipv4.tcp_max_syn_backlog = 3240000
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_wmem = 4096 65536 16777216
------------------------------------------------------------------------
показатели на момент нагрузкиКоличество внешних front:80 nginx соединений
netstat -na | grep :80 | wc -l
1191
Количество back соединений httpd
netstat -anpt | grep httpd | grep ESTA | wc -l
68
Количество используемой памяти
total used free shared buffers cached
Mem: 64320 42553 21767 5 2141 27733
-/+ buffers/cache: 12678 51642
Swap: 8191 1759218597 75357
load average
load average: 41.27, 44.92, 45.26
-------------------------------------------------------------------------
показатели на момент "штиля"Количество внешних соединений :80 nginx
469
Количество внутренних соединений httpd
8
Количество используемой памяти
total used free shared buffers cached
Mem: 64320 48434 15886 5 2823 34893
-/+ buffers/cache: 10717 53603
Swap: 8191 1759218597 75357
8. Uptime, load average
load average: 3.29, 3.04, 3.00
>[error] server reached MaxClients setting, consider raising the MaxClients setting
>MaxClients - увеличивали до 1200 (ресурсы имеются)Продавец в магазине обслуживает покупателей. в какой то момент покупателей становится больше...и директор магазин делает ШИРЕ ДВЕРИ что по его мнению:
1) уменьшит нагрузку на продавца
2) позволит продавцу обслуживать клиентов быстрее
3) сократит количество клиентов...Что имели в виду вы, увеличивая MaxClients в тот момент когда сервер даже с текущим количеством не мог справится?
> Количество запросов по одним и тем же урлам доходило до 3-4
> за секунду.3-4 запроса в секунду положили вам сервер?
Шо там у вас за афедронотариф с битриксом что 3-4 запроса в секунду положили вам сервер?