Ваш надежный
хостинг партнер
(495) 797-8-500

8-800-700 40 36

У Вас нет выбранных услуг.



Новости компании, технические статьи

29.08.2015

Как оптимизировать работу Apache с использованием nginx

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

Многим доводится пробовать и экспериментировать со множеством вариантов, однако для большинства такое решение в конечном счете оказывается наиболее надежным. Очень важно в данном случае, если организуется работа с амостоятельно, не «подвесить» сервер неграмотно организованным веб-сайтом.

В рассматриваемом нами примере мы имеем дело со в меру нагруженным сервером, на котором располагается до 50 веб-ресурсов, посещаемость которых составляет не более сотни человек в сутки. То есть в общей сложности речь идет о 5 тысячах посетителей за целый день. Приведем для наглядности конфигурацию рассматриваемого сервера, с которым довелось работать в последнее время:

  • Операционная система Ubuntu;

  • 2 Гб оперативной памяти максимум и 768 Мб минимум (в случае нехватки может подключаться дополнительный источник оперативки);

  • хранилище данных дисковое на 20 Гб;

  • 14 Core – процессор.

Со временем специалисты стали замечать нестабильность в потреблении оперативной памяти с часто завышенными показателями. Точно также стало завышаться и число производимых дисковых операций. В данном случае пришлось повысить минимальное количество оперативной памяти, что, собственно говоря, позволило исчерпать проблему. Несколько сократилось использование RAM, а вот число дисковых операций сократилось многократно, что собственно устранило характерные «подвисания».

В чем же была причина?

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

Apache выделяет под каждого посетителя по отдельному процессу, вес которого составляет 50 Мб для RAM.

Далее последовала дополнительная установка nginx, который выполнял функцию «апачевского» интерфейса, то есть запускался под Apache и выделял каждому посетителю немногим более сотни килобайт. Налицо оптимизация.

С момента увеличения минимальной RAM и до установки nginx прошло порядка недели. Сначала на спад пошло число выполняемых дисковых операций, а также понизился расход оперативной памяти. За счет ngnix были исключены резкие колебания в памяти.

На самом деле эффект, который оказывает ngnix заметен не так выраженно, поскольку посещаемость ресурсов, по сути, не такая высокая в рассматриваемом случае. А вот если речь идет о высоконагруженных веб-проектах, то там данное решение требуется в обязательном порядке, поскольку эффект от него будет существенным.

Немного о том, что представляет собой nginx и его установке

В дополнение отметим, что, по сути, nginx это почтовый прокси-сервер и веб-сервер, который работает с операционными системами Unix и позволяет эффективно организовывать работу с серверами и распределением нагрузок на их ресурсы. Произвести установку nginx можно следующим образом:

aptitude install nginx

/etc/init.d/nginx start

В общем и целом подобные манипуляции позволяют не только оптимизировать работу Apache, избавив его от подвисаний, но также сэкономить на хостинге.



Возврат к списку