Я имею, имеют веб-сервер, который выполняет некоторые сервисы как Apache
, Mysql
, Redis
и некоторые NodeJS
приложения. На временах интенсивного трафика мой сервер, кажется, не делает, поддерживают большую нагрузку. Когда происходит, часто когда я пытаюсь получить доступ к странице, я получаю следующее сообщение из mysql
:
Warning: mysqli_connect(): (HY000/2003): Can't connect to MySQL server on '127.0.0.1' (99)
Это сообщение появляется на неустойчивой форме, способом что большую часть времени, если я обновляю страницу, это сообщение не появляется снова. Кроме того, я не думаю, что это - проблема на моей конфигурации для mysql, потому что у меня есть следующий результат mysqltuner.pl все время:
[OK] Highest usage of available connections: 74% (336/450)
Точно так же Сервер Redis показывает сообщение проблемы для соединения с сервером:
Could not connect to Redis at 127.0.0.1:6379
Я контролирую свой сервер в течение тех времен, и я выяснил что aproximatly 2G RAM (whitout использование любого байта ПОДКАЧКИ для процесса Mysql, Redis или NodeJS. После проводят некоторое время в исследовании (без Севера для следования), я считал некоторых о Портах Ephemearal. Таким образом, я пытался корректироваться net.ipv4.ip_local_port_range
параметр для увеличения моего диапазона портов (корректируются от 32768 61000
кому: 10000 65000
). Результаты были ужасны! Мой веб-сервер повышает, это - время отклика от среднего числа 180~200 мс приблизительно к 6 000 мс, и среднее число загрузки сервера повышает много также (но сообщения об ошибках исчезают!).
Мои приложения NodeJS (все они) используют Socket.io, и ответьте от другого por на моем сервере. Я пытаюсь выяснить то, что является решением для проблемы. Это - проблема доступности порта? Почему сетевой ipv4.ip_local_port_range параметр, корректируют замедление сервера?
Конфигурация сервера:
Если ваш вопрос заключается в том, как лучше всего контролировать ваш сервер в периоды пиковой нагрузки, что трудно сделать в периоды пиковой нагрузки, я бы поискал какой-нибудь легкий инструмент для помощи в мониторинге. . Top, ps и df не всегда сокращают его.
Я использовал collectd для захвата точек данных на моих разделах, памяти, процессорах, apache, mysql и другие вещи. Он собирает данные и сохраняет эти точки данных, тогда вам понадобится какой-нибудь другой инструмент для извлечения данных - например некоторые веб-интерфейсы для отображения данных .
Затем для устранения неполадок, возможно, инструмент чтобы поразить ваш сервер и создать сценарий с высоким уровнем использования. Apache Benchmark (ab) или Siege - хорошие инструменты для этого.