Назад | Перейти на главную страницу

Внезапное увеличение загрузки ЦП и времени ответа сервера

За последние 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 вдвое или более и посмотрите, выживет ли он лучше в следующий раз.

из графиков пропускной способности он показывает увеличение входящего трафика, т.е. трафика, идущего на сервер, а также увеличение скорости записи на диск .. это заставляет меня подозревать какую-то атаку на сервер. Лучший подход безопасности здесь - изменить ВСЕ серверные пароли .. Это важно для определения того, является ли это ошибкой в ​​программном обеспечении или каким-то видом успешного взлома вашего сервера ...