Mod_pizza. Фирменное блюдо от хостинга «Джино»::Журнал СА 3.2011
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6143
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6855
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4139
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6282
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3433
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13968
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9099
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7052
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5361
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4593
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3400
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3127
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3378
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 2999
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Mod_pizza. Фирменное блюдо от хостинга «Джино»

Архив номеров / 2011 / Выпуск №3 (100) / Mod_pizza. Фирменное блюдо от хостинга «Джино»

Рубрика: Администрирование /  Тестирование

Дмитрий Невар ДМИТРИЙ НЕВАР, ведущий инженер интернет-провайдера «Универсум Бит». Сфера интересов – от ИТ до исторической реконструкции и фехтования. В последнее время занят организацией семинаров для системных администраторов

Mod_pizza
Фирменное блюдо от хостинга «Джино»*

Ежедневно мы получаем сотни мегабайт информации из Сети. Миллионы файлов в месяц, сотни музыкальных композиций, десятки фильмов. Мы подсели на этот безграничный источник информации. Однако редко задумываемся, где именно физически хранится данная информация. И потому расскажу о хостинге

Недавно мне удалось пообщаться с представителями одного из известных российских хостинг-провайдеров – «Джино», рассказавших об основных проблемах, с которыми им приходится сталкиваться.

В первую очередь это проблема обеспечения быстродействия и безопасности данных клиентов виртуального хостинга – наиболее востребованного и доступного вида размещения сайтов на данный момент. Самое «узкое место» здесь – это веб-сервер, который принимает все запросы от посетителей сайта и берет на себя задачу по формированию и передаче контента. Типовым решением является веб-сервер Apache, но из-за проблем с производительностью и быстродействием данное решение не самое оптимальное. На высоконагруженных системах время обработки запроса и выдача ответа от веб-сервера заметно увеличивается. С этим явлением можно бороться различными способами: например, связкой Apache + Nginx или выбором более подходящего MPM-модуля.

MPM-модуль (Multi-Processing Module) – сердце Apache, которое обеспечивает управление сетевыми соединениями и начальную обработку запросов. Фактически MPM-модуль выполняет всю работу между моментом поступления запроса и его обработкой, например, PHP-интерпретатором.

Традиционно большинство хостинг-провайдеров используют prefork. Он обеспечивает простейшую базовую модель: в памяти висит один или несколько процессов, и при поступлении нового запроса, если существующие процессы заняты, делается ветвление главного процесса на два и более. Мы понимаем, что каждое ветвление – это затраты процессорного времени, а соответственно издержки на время проведения операции. Пока процессов мало, это не страшно, но, как только накапливается критическая масса, время на ветвление значительно увеличивается, снижая общую производительность системы.

Есть альтернатива – worker. Но и с ним не все так гладко. Хоть он и является, по сути, многопоточным и выполняет каждый поток отдельно, это не отменяет проблемы безопасности, которая, согласитесь, крайне важна. Сейчас объясню, что с ней не так. Worker использует для взаимодействия между потоками общие части памяти и общие блоки. Следовательно, для обеспечения безопасности приходится использовать особые ухищрения и ограничивать все модули системы, например mod_php. Но главным недостатком данных модулей является то, что они запускают процессы от имени одного пользователя, что само по себе в рамках виртуального хостинга небезопасно.

В качестве универсального средства можно использовать suexec, но этот способ не решает полностью проблему: PHP и другие скрипты работают в режиме CGI. При обработке каждого скрипта suexec запускает отдельный процесс, что сильно (минимум в два раза) замедляет обработку и ограничивает функционал.

Существуют другие MPM-модули, призванные решить проблему с безопасной обработкой запросов без использования CGI, такие как mod_itk и mod_peruser. Код этих модулей основан на коде prefork и worker и является их довольно грубой переделкой. Для решения проблемы с безопасностью здесь используются сомнительные решения, в простонародье именуемые «костылями». Кроме того, эти модули не рассчитаны на большое число запросов – катастрофически растет потребление памяти, ведь каждый процесс перестаёт быть универсальным и становится заточенным только под определенного пользователя.

Специалисты «Джино», неудовлетворенные подобной ситуацией, решили разработать с нуля и внедрить собственный MPM-модуль – mod_pizza, который представляет собой сложный и хорошо проработанный механизм, рассчитанный на высокую нагрузку. Кроме обеспечения безопасности, оптимизированы и полностью переписаны многие функции, участвующие в обработке запросов и инициализации процессов, в связи с чем улучшены показатели потребления памяти и увеличена отзывчивость Apache в целом. Реализованы встроенные механизмы защиты от простейших DDOS-атак, ограничения скорости скачивания статического контента, ограничения нагрузки на процессор, времени выполнения скриптов.

Во время старта mod_pizza порождает множество легковесных процессов – так называемых Безработных, готовых в любой момент стать Рабочими – получить команду, принимать запросы к определенному сайту и обрабатывать их с правами владельца этого сайта. Таким образом обеспечивается невозможность доступа Рабочим к данным других пользователей сервера. Это полностью решает традиционную проблему безопасности, присущую Apache: владелец любого сайта, зная структуру папок на сервере, мог получить доступ к информации своих «соседей».

Команды на инициализацию и сами запросы раздает специальный служебный процесс – Диспетчер. Он принимает внешние соединения и обрабатывает все запросы. В его задачу входит получение запроса, определение, к какому пользователю он пришел, и работа по инициализации и передаче запроса рабочей группе, привязанной к этому пользователю. Этот процесс имеет доступ к статистике обработки запросов и решений по инициализации Рабочих. Передачи запросов или же их блокировку и задержку он принимает на основании ее анализа. Таким образом, в mod_pizza реализованы защита от простейших DDOS-атак, балансировка и возможность начальной обработки, которая заключается в проверке правильности запроса и выдачи ошибки, если, например, домен, к которому пришел запрос, не обслуживается этим сервером.

Рисунок 1. Упрощенная схема работы mod_pizza

Рисунок 1. Упрощенная схема работы mod_pizza

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

Благодаря своей стройной внутренней архитектуре mod_pizza обладает многими преимуществами по сравнению с другими MPM. Он позволяет надежно и абсолютно безопасно работать с mod_perl, mod_wsgi/mod_python, mod_ruby и другими подобными модулями. По скорости mod_pizza не уступает, а часто и превосходит оригинальный модуль prefork, выполняющий скрипты без разделения прав, может обслуживать тысячи одновременных соединений. Очень эффективно устроена работа с памятью: для обслуживания даже очень большого количества пользователей и доменов достаточно лишь одного запущенного экземпляра Apache.

Mod_pizza дает возможность ограничивать выделяемые пользователю ресурсы в рамках виртуального хостинга. Скачки нагрузки на одном аккаунте никак не отражаются на других пользователях. Пользователи и администраторы могут мгновенно изменять настройки без перезапусков и остановок. Администраторы могут в реальном времени следить, кто из пользователей потребляет больше ресурсов, чьи скрипты зависают, кому не хватает выделенных процессов-Рабочих.

В настоящее время mod_pizza успешно работает на всем парке серверов виртуального хостинга «Джино», обеспечивая функционирование более 50 000 доменов только лишь в одной зоне .ru.

***

К чему я это все рассказываю? К тому, что сейчас в «Джино» прорабатывается вопрос о выпуске mod_pizza в виде продукта, доступного всем желающим. И я, как, думаю, и многие из вас, с нетерпением жду, когда же они выпустят модуль отдельным и, главное, открытым проектом. А до этого времени ощутить все прелести данной технологии я смог, благодаря переносу некоторых своих ресурсов на хостинг «Джино».

Приложение

Почему «пицца»?

Когда мы покупаем пиццу, мы режем ее на кусочки, разделяя между собой. Одну пиццу едят сразу несколько человек, не залезая в общую тарелку. По тому же принципу работает и mod_pizza: разделяет ресурсы сервера между пользователями, полностью изолируя их друг от друга.

* На правах рекламы


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru