Есть большие проблемы с загруженностью сервера nginx.
Развернута следующая конфигурация:
1. Основной сервер, который распределяет нагрузку между 4 серверами.
nginx + php-fpm + mariadb. 3 ядра, 3 гигабайта ОЗУ
2. Сервер для раздачи результатов php и картинок
nginx + php-fpm + mariadb. 1 ядро, 1 гигабайт ОЗУ
3. Сервер для раздачи результатов php и картинок
nginx + php-fpm + mariadb. 1 ядро, 1 гигабайт ОЗУ
4. Сервер для раздачи исключительно картинок
nginx. 1 ядро, 1 гигабайт ОЗУ
5. Сервер для раздачи исключительно картинок
nginx. 1 ядро, 1 гигабайт ОЗУ
На основном nginx распределение такое:
по php:
upstream http_php {
server Сервер2 weight=2 max_fails=2 fail_timeout=2s;
server Сервер3 weight=2 max_fails=2 fail_timeout=2s;
server localhost:81 weight=1 max_fails=2 fail_timeout=2s;
}
по картинкам:
server Сервер4 weight=4 max_fails=2 fail_timeout=2s;
server Сервер5 weight=4 max_fails=2 fail_timeout=2s;
server Сервер2 weight=1 max_fails=2 fail_timeout=2s;
server Сервер3 weight=1 max_fails=2 fail_timeout=2s;
}
То есть динамический контент отдается серверам 2 и 3 с большим приоритетом, с меньшим - обрабатывает сам основной сервер
Статический контент отдается серверам 4 и 5 с большим приоритетом, с меньшим серверам 2 и 3
Проблемы возникают в праздники, когда большой наплыв посетителей.
Тормозит основной сервер. Даже в терминальном окне команды вводятся с замедлением.
Второстепенные сервера не сильно нагружены почему-то.
Модуль nginx_status_page на основном сервере показывает около 6000 соединений.
Вопрос: в какую сторону расширяться?
Увеличивать мощность основного сервера или увеличивать количество второстепенных серверов?
Спасибо.