Мне очень нужна помощь. Мои сайты сейчас почти невозможно использовать из-за огромной нагрузки на мой сервер. Я уже на месяц опаздываю по ипотеке, и это действительно не помогает моей ситуации. Я много месяцев работал над решением этой проблемы с прерывистой загрузкой (никогда не было так плохо).
Я подозреваю какую-то атаку, так как я часто подвергаюсь DDOS-атакам! Я пытался выяснить, что вызывает нагрузку, но боюсь, что у меня просто нет опыта или знаний, чтобы понять все данные, на которые я смотрел. Я даже не знаю, с чего начать и как протестировать большое количество атак.
Вот некоторые данные, которые могут оказаться полезными ...
Сервер: Xeon X3220 Quad Core 2,4 ГГц - Linux, FreeBSD 500 ГБ жесткого диска и 8 ГБ оперативной памяти. Запускает Centos выпуска 5.7 Версия сервера: Apache / 2.2.21 (Unix) mod_ssl / 2.2.21 OpenSSL / 0.9.8e-fips-rhel5 mod_auth_passthrough / 2.1 mod_bwlimited / 1.4 FrontPage / 5.0.2.2635 mod_qos / 9.74
Предупреждение: все сайты являются сайтами для взрослых софткор - в основном, фэнтези-арт, например, эльфы и амазонки.
1) Сайты могут работать нормально в течение нескольких недель или дней при загрузке менее 10, а затем начать прыгать до 40-80 - не знаю почему. Те же сайты, те же моды, такой же объем трафика - просто WHAM!
2) Я почти каждый день получаю электронное письмо, в котором говорится: «Большое количество неудачных попыток входа в систему с IP (каждый раз разные)». Мой веб-хостинг (который мне почти никогда не помогает) сказал мне, что это был флуд udp или что-то в этом роде.
3) Я изменил порт для MySQL по умолчанию. Если я когда-нибудь верну его к значению по умолчанию - я получу более 100 загрузок из-за постоянного наводнения порта mysql.
4) Я перенастроил MYSQL. Ссылка на сайт: http://www.deadlyamazons.com/logs/mycnf.txt
5) У меня 3 сети Joomla Jomsocial. Я потратил пару недель на то, чтобы выключить все моды / плагины, подождать день, а затем снова включить их на следующий день или позже, если никаких изменений не было (их не было). Например, в четверг выключу видео, в пятницу отключу чат .. и тд и нагрузку заметно не меняет.
6) Информация о Joomla: Все SEF отключены - sh404sef полностью отключен и удален. Компоненты: Joomla 1.5.22, Jomsocial 2.0.5, Kunena 1/31/2011, HWDMediashare 11/22/2010 и JBolo Chat 2.7.3, Comet Chat или Envolve Chat. Сжатие страниц включено, кеш включен 15 минут.
Пожалуйста, нажмите на этот форум, чтобы увидеть ссылки на все мои отчеты: http://forum.joomla.org/viewtopic.php?f=433&t=706035&p=2777500#p2777500
09.04.12 - Добавлена эта часть:
Привет, ребята, я вернулся с дополнительной информацией о моем плохом сервере. Сервер в настоящее время хромает с нагрузкой от 20 до 60, в среднем около 30.
Я добавлю стимул к решению моей проблемы: 100 долларов через Paypal за ответ, который решает проблему «нагрузки» без предложения покупки 1 или более дополнительных серверов. Опять же, эти сайты отлично работали с еще более высоким трафиком на менее мощном сервере.
Я только что перекомпилировал apache 2.22, добавив eaccelerator и zend-optimizer - без изменений. Другой мод, который я включил, был QOS, который удерживает количество соединений на более низком уровне. Некоторое время у меня QOS работал.
Предложения и пожелания:
Да, я отключил порт MySQL, я должен был упомянуть об этом.
Статистика трафика:
Пропускная способность марта: 579,19G
КБайт, март 2012 г .: 3 194 134 948 | Декабрь 2011 года: 3 504 864 832 человека
Посещений март 2012 г .: 920 619 | Декабрь 2011 г .: 727 843
Страниц за март 2012 г .: 10 231 430 | Декабрь 2011 года: 10 830 700
Files март 2012 г .: 89 218 232 | Декабрь 2011 года: 102 862 958
Просмотров за март 2012 г .: 106 515 577 | Декабрь 2011 г .: 120 884 007
Видео Top -C во время высокой нагрузки: Вот AVI 2 'Top -c, которые я взял, когда сервер работал между 30 и 40 нагрузками.
Скачать клип 1,5 минуты / 30M: http://www.mediafire.com/?yk3b5xota7l7s30
Скачать клип 30 секунд / 10M: http://www.mediafire.com/?4c2t37i8gmd189w
Видео о MySQL Processlist при высокой нагрузке Вот AVI 2 «Show Processlist» внутри CPanel, когда сервер работал между 60-30 нагрузками.
Скачать клип 2 минуты / 40M: http://www.mediafire.com/?ymmfe8599bx11ho
Скачать клип 30 секунд / 10M: http://www.mediafire.com/?e675p3p1f0l65jt
Статистика DStat: 4 кадра, снятых подряд ... Ссылки:
http://www.deadlyamazons.com/logs/dstat01.jpg
http://www.deadlyamazons.com/logs/dstat02.jpg
http://www.deadlyamazons.com/logs/dstat03.jpg
http://www.deadlyamazons.com/logs/dstat04.jpg
Статистика, размещенная на доске Joomla, которую раньше нельзя было увидеть:
netstat -alntp | grep: 80 | туалет -l (1586)
netstat -n | grep: 80 | grep SYN | wc -l (30)
netstat -anp | grep .tcp \ | udp. | awk '{print $ 5}' | вырезать -d: -f1 | сортировать | uniq -c | sort -n (ничего)
netstat -alntp | awk '{print $ 5}' | вырезать -d: -f1 | сортировать | uniq -c | sort -n - Отчет: http://www.deadlyamazons.com/logs/netstat_alntp_awk_print_5_2.txt
netstat -alntp | grep: 80 - http://www.deadlyamazons.com/logs/netstat_alntp_grep_80_2.txt
Вверху (командная строка) http://www.deadlyamazons.com/logs/top01_cli.jpg Top 2 (командная строка) http://www.deadlyamazons.com/logs/top02_cli.jpg Верх (WHM) http://www.deadlyamazons.com/logs/top01_whm.jpg Топ 2 (WHM) http://www.deadlyamazons.com/logs/top02_whm.jpg IOStat (командная строка) http://www.deadlyamazons.com/logs/iostat.jpg Ежедневный журнал процесса (WHM) http://www.deadlyamazons.com/logs/daily_process_log.jpg Процесс трассировки MYSQL (txt) (ОГРОМНЫЙ!) http://www.deadlyamazons.com/logs/trace_mysql.txt Трассировка процессов MYSQL (rtf) http://www.deadlyamazons.com/logs/trace_mysql.rtf Процесс трассировки sxyamzn (txt) http://www.deadlyamazons.com/logs/sexyamazonscom_indexphp.txt Процесс трассировки sxyamzn (rtf) http://www.deadlyamazons.com/logs/sexyamazonscom_indexphp.rtf Sleepps трассировки процесса (txt) http://www.deadlyamazons.com/logs/sleeppeepscom_indexphp.txt Sleepps трассировки процесса (RTF) http://www.deadlyamazons.com/logs/sleeppeepscom_indexphp.rtf
Любая помощь будет оценена.
Вот первое, что я вижу, идет не так. Старайтесь избегать размещения MySQL и Apache на одном сервере. Вот почему.
На основе предоставленной вами конфигурации, которую я добавил в Калькулятор использования MySQL
Session variables
max_allowed_packet 4.0 MB
sort_buffer_size 3.0 MB
net_buffer_length 16.0 KB
thread_stack 192.0 KB
read_rnd_buffer_size 8.0 MB
read_buffer_size 2.0 MB
join_buffer_size 96.0 MB
Total (per session)113.2 MB
Global variables
innodb_log_buffer_size 1.0 MB
query_cache_size 96.0 MB
innodb_buffer_pool_size 1.0 MB
innodb_additional_mem_pool_size 1.0 MB
key_buffer_size 384.0 MB
Total 483.0 MB
Total memory needed (for 300 connections): 33.6GB
У тебя 8Гб. Так что ... Скоро ты станешь довольно крутым. Ваш сервер будет использовать всю свою свободную оперативную память с MySQL, потому что вы ему сказали. Все остальное перейдет в пространство подкачки. На диске. Медленный. IOWait перебьет крышу, заставляя процессы, которым требуется доступ к диску, ждать его. Это означает, что процессы будут заблокированы. Это означает, что средняя нагрузка также резко возрастет.
Joomla в своей стандартной, ненастроенной форме немного отвратительна. Сколько сайтов у вас на одном сервере? Может быть, он просто не справляется. Есть ли у вас такой слой, как Memcached, между базой данных и веб-приложением? (Возможно, для этого потребуется больше оперативной памяти). Коппермайн тоже немного блудница с процессорами. Для простой загрузки галереи требуется довольно много циклов (или было, когда я использовал ее в прошлый раз).
Предложения:
В дополнение к ответу Тома может быть проблема и с php, он создает невероятную нагрузку. Иногда в Joomla виноваты аддоны. Проверьте, установили ли вы новые надстройки, и используйте режим отладки, чтобы увидеть, есть ли с ними проблемы. Основная причина, по которой они вызывают нагрузку, заключается в том, что они часто запрашивают вашу базу данных. Поэтому, пожалуйста, как предложил Том О'Коннор, настройте свою БД.
Также посмотрите eAccelerator для php. Он кэширует ваши страницы, поэтому их обслуживание становится намного быстрее. Однако это означает большее использование памяти.
А если серьезно, запустите брандмауэр, если он не должен быть доступен извне, закройте его (сбросьте, а не отклоните).
Вы можете попробовать (и я не обещаю результатов) запустить OSSEC, чтобы заблокировать попытки взлома методом грубой силы. я использую это и работает очень хорошо. Если они выполняют TCP-синхронизацию или UDP-флуд-атаку, единственное, что вы можете сделать, - это попросить провайдера сбросить трафик до того, как он достигнет вас.