За последние 10 дней у меня внезапно увеличилась загрузка ЦП на моем веб-сайте, причем загрузка ЦП достигла 100% в три раза. В течение этого времени я не мог подключиться к моему веб-сайту по SSH, поэтому я не мог понять, что на самом деле использует столько ЦП, но у меня такое чувство, что он должен что-то делать с Apache. Мой веб-сайт - это приложение Django, использующее Apache2, PostgreSQL и Memcached, размещенное на DigitalOcean (512 МБ ОЗУ, 20 ГБ SSD-диск, Ubuntu 14.04 x64).
Вот результат топа на данный момент.
top - 16:15:31 up 19:12, 1 user, load average: 0.01, 0.09, 0.46
Tasks: 78 total, 2 running, 76 sleeping, 0 stopped, 0 zombie
%Cpu(s): 9.5 us, 1.9 sy, 0.0 ni, 85.0 id, 3.3 wa, 0.3 hi, 0.0 si, 0.0 st
KiB Mem: 501868 total, 495576 used, 6292 free, 41836 buffers
KiB Swap: 0 total, 0 used, 0 free. 152976 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15036 www-data 20 0 906084 156828 2448 S 19.3 31.2 12:08.08 apache2
1 root 20 0 33472 1300 0 S 0.0 0.3 0:02.09 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:01.63 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root 20 0 0 0 0 S 0.0 0.0 0:10.60 rcu_sched
8 root 20 0 0 0 0 R 0.0 0.0 0:29.05 rcuos/0
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0
11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
12 root rt 0 0 0 0 S 0.0 0.0 0:01.07 watchdog/0
13 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
15 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback
17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd
18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset
19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/u3:0
Вот файл конфигурации Apache
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [nocase]
RewriteRule ^(.*) http://www.example.com$1 [last,redirect=301]
ServerName example.com
ServerAlias www.example.com
ServerAdmin admin@example.com
WSGIDaemonProcess example python-path=/home/abc/example:/home/abc/example/env/lib/python2.7/site-packages
WSGIProcessGroup example
WSGIApplicationGroup %{GLOBAL}
WSGIScriptAlias / /home/abc/example/wsgi.py
DocumentRoot /home/abc/example
<Directory />
Require all granted
</Directory>
Alias /static/ /home/abc/example/static/
<Directory /home/abc/example/static>
Order deny,allow
Allow from all
</Directory>
Alias /media/ /home/abc/example/media/
<Directory /home/abc/example/media>
Order deny,allow
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Вот график использования ЦП, диска и полосы пропускания за последний месяц.
Как видите, загрузка ЦП за последние пару дней выросла в 3 раза. Пришлось перезагрузить дроплет, чтобы вывести его из строя. Несколько дней назад загрузка ЦП обычно варьировалась от 0 до 5%, но сейчас она увеличилась.
Время отклика для веб-сайта также увеличилось примерно до 4 секунд. Все работало нормально примерно до 10 дней, и с тех пор я не вносил никаких изменений в свою конфигурацию. Прирост посещаемости не произошло, ежедневная посещаемость составляет около 1500 посетителей. Как я могу определить причину этой проблемы? Любые идеи?
Вам обязательно стоит попробовать использовать Cloudflare, по крайней мере, попробуйте бесплатную версию, ваш сервер будет более бесплатным без необходимости обслуживания статических ресурсов, а ваш сайт будет защищен от наиболее распространенных атак.
Если теория sikas верна, что это вызвано внешним трафиком, вам нужно лучше настроить apache. Отрежь ServerLimit
вдвое или более и посмотрите, выживет ли он лучше в следующий раз.
из графиков пропускной способности он показывает увеличение входящего трафика, т.е. трафика, идущего на сервер, а также увеличение скорости записи на диск .. это заставляет меня подозревать какую-то атаку на сервер. Лучший подход безопасности здесь - изменить ВСЕ серверные пароли .. Это важно для определения того, является ли это ошибкой в программном обеспечении или каким-то видом успешного взлома вашего сервера ...