Задать вопрос
SlavikF
@SlavikF

Какой дистрибутив Linux выбрать для хостинга Apache + PHP сайтов?

В основном надо хостить аудио-записи конференций.
Трафик не очень большой (4000 посетителей в месяц по GA), но материалов около терабайта.
Для этого дела есть самописная CMS, которая умеет эти записи проигрывать нужным способом искать и т.д.
Требования: PHP 7, Apache, MySQL.

Я взял дедик на OVH (32GB RAM, 8cores), накатил на него Hyper-V, а в нём - Ubuntu 18.04 VM (8GB RAM, 3cores).
И оно тормозит. Причём похоже из-за сети. Один из симптомов - это иногда сайт открывается быстро, а иногда - первую страницу ждёшь секунд 10-20!
Пока разбирался, увидел, что у меня висит куча соединений в состоянии CLOSE_WAIT:
root@ub18s:/home/slavik# netstat -tupn | grep CLOSE_WAIT
tcp 1 103452 142.44.185.104:443 213.180.203.53:58602 CLOSE_WAIT 30305/apache2
tcp 1 99258 142.44.185.104:443 213.180.203.53:39694 CLOSE_WAIT 30937/apache2
tcp 1 29358 142.44.185.104:443 37.9.113.126:41087 CLOSE_WAIT 32766/apache2
tcp 1 114636 142.44.185.104:443 213.180.203.53:54569 CLOSE_WAIT 30338/apache2
...
И это нехорошо. И про это есть вопросы на StackOverflow, но решения я не нашёл - похоже на проблему сетевого стэка Убунты.

Ну я попробовал и задеплоил ещё одну VM, теперь CentOS 7 (8GB, 3 cores).
Работает всё класс, быстро, висяков CLOSE_WAIT нету.
Но в CentOS постоянно висит один процесс - kswapd0, которые нагружает одно ядро на 100%. Это вроде бы связано со swapping memory. Тоже пробовал всякое, разные настройки - не одолел, тоже похоже на проблему ядра ОС.
Хотя на работе это вроде не отображается - ничего вроде бы не тормозит, но как-то неприятно.

Вот теперь думаю - попробовать Debian? 9.6?
Или есть какая-то конфигурация, которую народ посоветует?

P.S. Поставил Debian 9.6 + Nginx + PHP-FPM. Вот уже около месяца работает. Очень стабильно.
  • Вопрос задан
  • 2927 просмотров
Подписаться 1 Средний 7 комментариев
Пригласить эксперта
Ответы на вопрос 3
kotomyava
@kotomyava
Системный администратор
Зачем вам Hyper-V? Лишние накладные расходы на ровном месте.

Дистрибутив особой роли не играет, на самом деле. Сетевой стек один и тот же, только некоторые настройки по умолчанию различаются, но их вполне и изменить можно.

А вот проблема у вас, вероятнее, не в CLOSE_WAIT, всё же, и не в сетевом стеке, а в том, что все процессы апача заняты обработкой существующих запросов, т.е. отдачей ваших аудио данных. И лучше бы это делать не с помощью Apache вовсе.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Какая разница: Apache или Nginx, если проблема на уровне ядра ОС?


Если вам кажется, что проблема на уровне ядра ОС, то во всех дистрибутивах линуксах - ядро линукса.
Нет смысла менять дистрибутив, разбирайтесь с вашей проблемой на текущем дистрибутиве.
Ответ написан
Комментировать
@jimquery
Конкретно в своей практике сталкивался с проблемой в модуле apache remoteip, но это очень специфичный случай был. Не увидел в вашем вопросе отчёта с вкладки Network браузера. Там есть параметр TTFB, который может косвенно указать с какой стороны проблема. Ещё бывает apache долго думает, когда режется частота процессора, но это больше для хостинга актуально. Ну и время выполнения php не помешает замерить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы