Я использую Apache в качестве обратного прокси-сервера для приложения Tornado и в настоящее время провожу нагрузочное тестирование веб-сокетов в системе.
Пока что все еще на предварительной стадии, поэтому схема выглядит следующим образом:
- Я создал скрипт Node.js, который устанавливает соединение websocket с сервером. После установки соединения он рекурсивно устанавливает другое.
- Я запускаю этот скрипт до 3000 подключений с моего локального ноутбука, одновременно запуская его на другом сервере (другой дата-центр, нежели сервер веб-сокетов) также до 3000 подключений. Так что к тому времени, как они оба набирают обороты, на сервере оказывается 6000 подключений.
Я обнаружил, что если я позволяю ему набирать обороты, а затем внезапно завершаю каждый скрипт (отменяя все 6000 соединений) и затем перезапускаю Apache, то системная нагрузка сервера резко возрастает. Я говорю о 300-500 (сервер имеет 16 ядер).
Но самое безумное, что, похоже, ничего не пострадало. Результаты vmstat
и iostat
показывают, что диск и процессор в основном простаивают. Мои приложения по-прежнему работают отлично. У меня даже есть запрос к моему приложению Tornado, запущенному в цикле while с моей локальной машины.
Кроме небольшого сбоя от перезапуска, похоже, это не повлияло. Есть идеи, где я могу устранить неполадки дальше?