- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Предыстория:
Ось: Ubuntu 11.10
Apache 2 (mpm-prefork)
apache modules:
- rewrite
- qos
- php
На всем этом стоит сайт основная цель которого - с помощью php скрипта передавать файлы с удаленного сервера юзеру. (Выдает header('Content-disposition:attachment'), с помощью курла читается удаленный файл, записывается в переменную и далее echo результат curl запроса).
Со временем перестало хватать ресурсов сервера, в частности ОЗУ (4 ГБ). Задумался о том что бы сменить apache с prefork на worker. Как следствие пришлось менять режим php, т.к. он не поддерживает апач в режиме нитей(или апач не поддерживает php - неважно).
История:
Приступил к установке apache2-mpm-worker
Шаг 1.
В ходе инсталяции увидел инфу о том что будет удален apache2-mpm-prefork и mod-php, и вместо этого будет установлен php-cgi.
Шаг 2.
Иду в /etc/apache2/apache2.conf с целью увеличить кол-во макс. коннектов, нитей и процессов.
Вопрос №1 Правильно ли я понял назначение директив mpm-worker?
StartServers - задает кол-во процессов "родителей" которые будут порождать дочерние потоки для обработки запросов.
ThreadLimit - Общее число потоков для всех "родительских" процессов
ThreadsPerChild - Число потоков которое может создать каждый из "родительских" процессов (Т.о. ThreadsPerChild=ThreadLimit/StartServers верно ?).
MinSpareThreads\MaxSpareThreads - диапазон кол-ва потоков которое каждый "родитель" держит запущенным в ожидании поступления запроса (Т.о. MaxSpareThreads не может превышать ThreadsPerChild, верно ?).
Вопрос №2 Что лучше: много "родительских" процессов и несколько потов на каждый или несколько "родительских" и много потоков для каждого ? Если однозначного ответа нет, то в какой ситуации одно лучше другого ?
Шаг 3.
В результате гугления решил что самым оптимальным способом прикрепления php Будет mod_fcgid
Далее в настройка виртуального хоста дописываю:
И для директории в который находятся php скрипты пишу +ExecCGI.
Итог.
Память потребляемая апачем уменьшилась в разы, вместе с тем появилось много процессов php, несмотря на это общее быстродействие увеличилось, потребляемая память уменьшилась.
Однако в логах апача появились некоторые непонятные ошибки
Вопрос №3
Что означает обилие следующих ошибок в логах апача ?
Однако ненормальной работы какой-либо из функции сайта не наблюдается.
Вопрос №1 Правильно ли я понял назначение директив mpm-worker?
Нет. Для этого документацию надо было прочитать.
ThreadLimit - Общее число потоков для всех "родительских" процессов
Чушь.
ThreadsPerChild - Число потоков которое может создать каждый из "родительских" процессов (Т.о. ThreadsPerChild=ThreadLimit/StartServers верно ?).
Нет.
MinSpareThreads\MaxSpareThreads - диапазон кол-ва потоков которое каждый "родитель" держит запущенным в ожидании поступления запроса (Т.о. MaxSpareThreads не может превышать ThreadsPerChild, верно ?).
Нет. Неверно.
Вопрос №2 Что лучше: много "родительских" процессов и несколько потов на каждый или несколько "родительских" и много потоков для каждого ? Если однозначного ответа нет, то в какой ситуации одно лучше другого ?
Лучше для начала разобраться как работает MPM модуль. А потом его настраивать.
В данном вопросе разницы особой нет. Разве что потоки в разных процессах получаются изолированными друг от друга. Случится сегфолт - умрут все потоки только в данном процессе.
Вопрос №3
Что означает обилие следующих ошибок в логах апача ?
См. FcgidIOTimeout (или IPCCommTimeout) директиву.
Нет. Для этого документацию надо было прочитать.
Вы думаете вокруг вас одни дураки?:) Естественно я читал доку на apache.org. Возникли вопросы, недопонимание, именно по этой причине я и задал эти вопросы тут.
Вы думаете вокруг вас одни дураки?:)
Вас не должно беспокоить то что я, возможно, думаю.
Естественно я читал доку на apache.org.
Я вижу обратное, о чем и написал. Либо вы не читали, либо ни слова не поняли. Google Translate вам в помощь.