Мы просто настраиваем наш веб-сайт на наш новый сервер, работающий на Windows Server 2008.
Наш сервер достаточно мощный, Xeon quadcore 3.0 и 25 ГБ оперативной памяти. Запуск Mysql и Apache
Проблема в том, что у нас загружается процессор. Из диспетчера задач обычно отображается 90 -> 100% ЦП во всех ядрах. Этот процессор все обрабатывает httd от Apache.
Бег
netstat -ano | find /c "80"
Мы выяснили, что сервер всегда занят примерно 2200 -> 2700 подключениями на 80-м порту. Может ли это быть ddos-атака, как мы можем изменить конфигурацию, чтобы оптимизировать наш сервер и заблокировать ненужные запросы?
Плохо это или нет, зависит от вашего приложения и конкретной ситуации. Обычно, когда вы используете netstat для подсчета соединений, вам это нравится:
netstat -ano | grep ESTABLISHED | find /c "80" | wc -l
иначе вы будете подсчитывать большое количество подключений в TIME_WAIT, что обычно нормально. Вы также можете подсчитать соединения SYN, чтобы проверить атаку SYN flood.
Вы можете обнаружить, что количество ваших подключений значительно снизится, просто посчитав УСТАНОВЛЕННЫЕ. Например, на одном из моих серверов в настоящее время при 6 запросах в секунду всего 1000 подключений, но только 5 в настоящее время находятся в состоянии ESTABLISHED (большинство из них находится в TIME_WAIT). На другом сервере, однако, 1000 подключений, но 500 в состоянии ESTABLISHED (20 запросов в секунду, и я подозреваю, что здесь включен какой-то параметр KeepAlive). Исходя из этих значений, ваши числа не обязательно выглядят слишком плохо.
Вы также можете использовать расширенную команду netstat для подсчета количества подключений каждого IP-адреса к вашему серверу:
netstat -an | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
«Нормальное» количество подключений / IP снова зависит от вашего приложения. В моем случае среднее значение составляет 5-10, поэтому, если я когда-либо увижу значительно больше, я рассмотрю его более подробно.
Почему бы не включить расширенный статус сервера (ограниченный диапазоном IP-адресов), чтобы посмотреть, что и где подключается.
http://httpd.apache.org/docs/2.0/mod/mod_status.html
И посмотрите в журналах.