Снижаем нагрузку на сервер с помощью nginx
Данная статья навеяна мне вот этим постом
Для своих проектов я пользуюсь услугами
Казалось бы должно хватать с лихвой. Но дело в том, что я не один использую данный аккаунт, он был куплен вместе с моими друзьями для совместного использования. В сумме мы делим данный VPS на троих. У каждого есть свой аккаун, но быть так сказать «рутом» вызвался я, так как по долгу службы мне приходится много «общаться» с серверами, хостингами, панелями и так далее. Я не хочу сказать, что мои товарищи ничего не понимают в данном деле и как-то возвышать себя над ними, нет - скорее я просто взял эту обязанность на себя. И следовательно мне следить за сервером и так далее...
От лирики к делу. Так вот VPS казалось бы довольно мощный, по началу потребление им ресурсов было мало и вопросов в работе не возникало, но при добавлении мной и товарищами на аккаунт проектов это самое потребление начало расти. В частности это коснулось потребляемой сервером отведенной ему оперативной памяти. Потребление приближалось к 80-90% от выделенного объема и тогда я начал искать источник потребления. Оным оказался добрый Апач(Apache), он усердно кушал «память» с каждым присоединенным клиентом и кушал ее довольно долго. Источник найдет, теперь нужно было найти способ устранения или снижения такой нагрузки. Немного «погуглив» наткнулся на на пост о котором я писал вначале статьи. Автор как оказалось то же «хостился» на данном сервисе, только в Европейском его исполнении(firstVDS.ru). В нем автор рассказывает, как он установил nginx (свободный Веб-сервер и почтовый прокси-сервер работающий в Unix системах). Особенностью данного сервера является то, что при работе с памятью он создает пулы(последовательность предварительно выделенных блоков динамической памяти) что оптимизирует использование адресного пространства памяти и ускоряет работу сервера. Nginx служит прослойкой между клиентом и сервером Апач(Apache), оперируя запросами и данными. Теоретически nginx забирая данные у Апача(Apache) и отдавая их клиенту, высвобождает процесс Апача(Apache)? Что ведет к снижению нагрузки. Так ли это остается проверить.
Ну что ж от слов к делу. Для большей наглядности я приведу «скриншоты» всего процесса включая показатели. Так как статья была написана уже после проведения данных операций, то «скриншотов» нагрузки до проведения - нету, но можете поверить мне на слово.
На сервере установлена панель ISP Manager, она имеет свои недостатки и свои плюсы. В данном случае к плюсам можно отнести легкость выполнения действий описанных в этой статье. Итак «логинимся» под «рутом» и идем в раздел «Возможности»:
Здесь отображены сервисы которые установлены на Сервере(VPS) и сервисы которые имеются в комплекте и их можно установить. Нам нужен «Nginx - быстрый и лёгкий WWW сервер для кэширования» , по умолчанию он не установлен, установить его можно нажав на значок диска в конвертике в правом верхнем углу:
После этого начнется установка сервера nginx. Подождите некоторое время(минут 1-10) и обновите страницу. Сервис установлен, если сам он не запустился, то его нужно запустить. Перейдите в раздел «Сервисы», выберите сервис nginx и запустите его нажав на зеленый значок запуска в правом верхнем углу. После этого перезапустите сервер Апач(Apache) для корректной работы с nginx таким же способом только выбрав Сервис http и нажав значок перезагрузки сервиса (красно-зеленый треугольник справа вверху) :
Вот собственно и все. Если у Вас что-то не вышло, перечитайте еще раз статью и попробуйте найти ошибку, если не выйдет то пишите в комментариях, попробую помочь.
А теперь возвращаясь к статье и снижении нагрузки на сервер, заходим в терминал под «рутом» и выполняем команду «top»:
До установки и запуска nginx потребление оперативной памяти моим сервером составляло 80-90% от общего объема, это примерно 140 - 150 Mb. После установки потребление равно 108 Mb , до этого были моменты что потребление составляло 70-90 Mb , зависит от активности посетителей сайтов находящихся на сервере.
На этом все. Надеюсь статья принесет пользу
19 коммент. к записи “Снижаем нагрузку на сервер с помощью nginx”
Прокомментировать
Рубрики
- Web (2)
- Сервера и хостинг (7)
- Mobile (1)
- Из жизни (2)
- Программирование (2)
- Linux (0)
Свежие записи
- Возвращение. Выбор качественного VPS
- Социальная Инженерия против McHost – рубеж взят
- PNG fix for IE6 – фиксим ПНГ’шки в ИЕ 6
- Очередной выбор или от сложного к простому
- Бдительность – защита от вирусов и вирусных атак
Свежие комментарии
- Alexandr к записи Google Sync Mobile (SyncML) – SE w960i и Google
- Alexandr к записи PNG fix for IE6 – фиксим ПНГ’шки в ИЕ 6
- Вадим к записи PNG fix for IE6 – фиксим ПНГ’шки в ИЕ 6
- ДМитрий к записи Google Sync Mobile (SyncML) – SE w960i и Google
- Юра к записи Снижаем нагрузку на сервер с помощью nginx





А зачем он вообще VDS нужен? Какие-то специфические задачи выполнять. Неужели хостинга не хватает?
Да как тебе сказать, хочется свободы. У хостинга всегда есть ограничения и основным из них является Выделяемая память и процент частоты процессора. А вот VDS/VPS как раз дает эту свободу. Да конечно возможно трудно следить и администрировать но на мой взгляд оно того стоит и тем более мы сами себе хозяева, надо модуль – поставили. Сами себе саппорт и так далее. Думаю ответил на твой вопрос.
VDS полезно брать, когда много сайтов скопилось. Вот у меня было больше 4х хостингов разных… А когда взяли VDS, то несколько сайтов перенёс и на сервер и всё норм.
А вот статье… Это действительно работает, теперь можно привязать ещё больше сайтов
Занятная статья.
))
А принимаете заявки на написание статей, ну или подсказки о чем можно написать ?
Потому что я искал долго но ничего конкретно не нашел. А конкретно – как измерить нагрузку которую будет давать сайт, как посчитать сколько памяти отъедает конкретнный скрипт (или группа скриптов), как посчитать или прикинуть или узнать точно – насколько зависит потребление памяти от количества одновременно находящихся онлайн юзеров, сколько памяти расходует мускел, как рассчитать примерно необходимый минимум по процессору и соответственно – как на основании всех этих данных подобрать себе VDS не переплачивая и не приобретая лишнего ? Было бы очень любопытно такое почитать – но сам не специалист и где то почитать такого не нашел.
Да, конечно. «Заявки и подсказки» оставлять можно. Они будут осмысленны и написаны статьи. Так что если есть желание – вперед. Жду «заявок». То что Вы написали в данном посте очень разбросано на большой объем и поэтому описать данное можно но нужно все скомпоновать. В общем пишите, буду осмысливать и помогать по возможности.
Наверное да – если все за раз – очень масштабно. С другой стороны – эт на цельный цикл статей тянет. А учитывая что такого гугл пока не знает – то вскорости поток юзеров с поиска будет по-моему неплохой мотивацией
а ? А я дак буду первым подписчиком
Отличная статья. Я давно искал подобную возможность оптимизации нагрузки на своем сервере.
Хочу сказать, что поддержка хостинга может замалчивать о таких возможностях с целью выдавить клиента на более дорогой план хостинга.
А по поводу заявок на статьи, хочу разместить одну.
В теле сайта (отдельных модулей)периодически появляется предупреждение JFTP::write: Bad response (на красном фоне). Я предполагаю что это связано со схемой кэширования, реализованной в CMS, но больше пока ничего не нашел.
Спасибо за критику. По поводу того, что поддержка может умалчивать – я вас не очень понял. Даже на самом сайте компании моего VPS,есть раздел в котором говорится о снижении нагрузке и оптимизация сервера. Остальные конечно могу и умалчивать, потому, что к примеру VPS/VDS продаются с тем расчетом, что человек умеет администрировать платформу или по крайней мере не далек от этого. Но Вы можете купить время администратора за кругленькую сумму =) и он Вам все настроит.
О какой статье Вы говорите, пишите подробнее, возможно обсудим. По поводу последнего Вашего абзаца – мои мозги на вынос(простите за метафору), но я ничего не понял, точнее понял часть. Если Вы хотите узнать о проблеме связанной в Вашей CMS, то хотя бы напишите какая это CMS. В общем «Язык и до Киева доведет»
Разумеется речь шла не о вашем хостинге:)
По поводу мозгов на вынос – приношу извинения.
Попробую поточнее:
Процессор AMD Sempron(tm) Processor 3200+ 1800.000 Mhz
Оперативная память 1002188 kB
Файл подкачки (swap) 2096472 kB
Размер дискового пространства 148210 Mb
Средняя загрузка 0.78 0.45 0.39
Продолжительность работы 5 days 19 hours 46 minutes
Количество процессов 175
СMS Joomla 1.5.9
Признаюсь, что нагружено на бедную джумлу очень даже много. Но что имеем, то имеем.
Используется внутренняя функция кэширования System Cache (без нее сайтик притормаживает). Но вот уже неделю наблюдаю, что через некоторое время после очистки кэша в теле сайта (отдельных модулей)периодически появляется предупреждение JFTP::write: Bad response (на красном фоне). И некоторые компоненты сайта (например календарь событий) некорректно отображают результаты запросов по соыбтиям (некоторые события просто не доступны).
Очистка кэша помогает, но не надолго.
У Вас на этом оборудовании только один сайт на Joomla 1.5.9 работает и больше ничего? Хочу сказать, что довольно мощная «машинка» И если там лежит только 1 сайт, то мне кажется не в нем дело, хотя, какая посещаемость проекта? И если можно адрес ресурса, не в виде ссылки(все равно поправлю). если смогу попробую помочь, но только после получения этих данных.
Странно, а какая ось стоит и кто настраивал, какой Apache крутится? Стоит ли Nginx?
Пинг идет нормальный с моей точки, мне кажется что либо настройки Apache, либо настройки и косяки Jommla, нагрузку по процессам смотрели во время загрузки страницы? Канал какой, сервер стоит в датацентре видимо))) Надеюсь не домашний? =)))
Надо ковырять, на php еще можно ставить Акселератор для разгрузки от нагрузки php. В общем нужно смотреть.
Сколько может стоить час консультаций?
Боюсь платную консультацию давать я не буду. Чем смогу тем помогу.Это ведь блог, а не сайт с коммерческими предложениями.Пишите, будем думать, обсуждать.
Установить nginx из менюшки панели управления, где она уже прописана и настроена не тяжело… а вот настроить теперь этот веб сервер и правильно использовать, дело другое. Тут менюшками не обойтись и придется влезть на сервер под рутом через ссш. Считаю, что данная статья должна описывать и установку под другие панели, а лучше… руками… как это и стоит делать во избежание разных конфликтов и прочего, руками и настройки делать…
Manul. Ваша конфигурация вполне должна вытягивать по нагрузке тот ресурс, о котором Вы говорите. Все дело в настройках сервера и/или скрипта. По повелению волшебной палочки никто не сможет найти что и где у Вас там не так. Если Вы не сильны в настройках веб-серверов, лучше наймите админа. Часто доделывать и подправлять сервера за кем-то сложнее чем настроить его с нуля… У меня возник вопрос: по какой причине было принято решение о размещении ресурса на сервере? Мне кажется, что это домашняя машина, выставленная в свет… Могу предложить Вам несколько вариантов размещения / настройки и прочего, для Вашего ресурса. Скажу сразу, настройка Вашего сервера обойдется Вам дороже, чем размещение его на чужой площадке на 6-8 мес. (если мы говорим не о настройке школьником или студентом).
Если по существу, то Жумла новых версий очень не любит включенный безопасный режим (т.е. проверьте включен ли он у Вас). Беглый поиск в Гугле дал результат – http://itblogger.ru/405bc2/DkUXEV5LH0dORExfDVheVVVVVFxdUF4WXEMXVl8PFlcJQxYMWwJFXloOFFwHQBVYWUMMXlwJBlUFCB9UXRICUgdFCgVZXA==/ . Там обсуждается таже проблема… кстати, там и в других статьях, где упоминается данная ошибка ставились дополнительные модули (стоит задуматься, правда?). Так же было несколько решений такой проблемы исправлением конфигурации ФТП (!). Как и что у Вас там настроено никто, кроме Вас не знает, так что больше подсказать нереально. Если нужна помощь, могу оказать, за плату, естественно, но о соразмерности платы и аренде внешней площадки, я уже говорил.
))
1) Размер процесса nginx зависит от подключенных модулей (как в apache) и от размера хеш таблиц.. если без этих таблиц (хешей) то можно снизить потребление памяти одним процессом до 6Mb
2) VDS это не многим лучше чем Виртуальный хостинг.. если куплен за копейки – то скорее всего разница будет в лимитах и в гиморе по настройке самому
Добрый день.
извините, если повторяюсь.
Недавно стал работать с ИСП
у меня CentOS 5.4 и ISP PRO 4.3.35
Есть нагрузка апача. хочу ее снизить.
в Возможностях есть «Nginx – быстрый и лёгкий WWW сервер для кэширования»
хочу его включить, но боюсь чтоб последствий плохих не было.
Хотел с вами посоветовать….. Включать смело…. или еще где что править придется.
Заранее благодарен за ответ.
Простите за задержку, да можете включать смело, не боясь!
Абсолютно согласен с автором. У меня тоже сайт на ВДСе. Правда в основе не джумла))
Включение Нджинкс – реально ускоряет статику.
Все же остальное зависит все же большей частью от нагруженности ресурса пользователями и возможности выделить ресурсы хост сервера.