Apache MPM Event

N
На сайте с 06.05.2007
Offline
419
#21

ну вот же наврал

myhand:

netwind :

В конце концов возьми да поставь два пакета.
Давно уже. Я не фантазирую "вообще" - а рассказываю как действительно можно сделать.

заявил, что давно уже поставил два пакета.

myhand:
Что, nginx переплюнул даже RewriteMap с тьюринг-полным обработчиком? А как такое может быть, извините пожалуйста?

Ну скажем, быстро не нашел готового рецепта. Тупо удобнее на обычном императивном языке программирования изобразить условную логику.

И зачем мне изучать как это сделать на неудобном ресурсопотребляющем apache, если я уже знаю как это сделать в nginx.

На самом деле мне нужно в некоторых случаях исправить заголовки ответа бекенда,а не URL. В mod_headers по-моему логика ограничена .

Нужно было модифицировать часть заголовка, если он явно неправильный. Например, вместо "Content-type: image/gif; Charset=UTF-8", сделать "Content-type: image/gif". Даже не представляю что там в mod_headers нужно выдумать. Можешь, конечно, выдумать из интереса.

И это реальный пример из жизни. Просто приложение на бекенде слишком сложное, чтобы разумно было искать почему оно выдает такие заголовки.

Кнопка вызова админа ()
M
На сайте с 16.09.2009
Offline
278
#22
netwind:
ну вот же наврал
заявил, что давно уже поставил два пакета.

Ай нехорошо. Ну не так ты туп как прикидываешься, а?

myhand:
Я не фантазирую "вообще" - а рассказываю как действительно можно сделать.

- абзацем выше был подробный рассказ. Ты его только почему-то "не заметил".

netwind:
Ну скажем, быстро не нашел готового рецепта. Тупо удобнее на обычном императивном языке программирования изобразить условную логику.

Ну и кто тебе помешал так сделать в апаче? - Элементарное нежелание читать документацию.

netwind:
И зачем мне изучать как это сделать на неудобном ресурсопотребляющем apache, если я уже знаю как это сделать в nginx.

И от этого документация может помочь. nginx, понимаешь почему-то любят настраивать (а иначе он тупо не обрабатывает часть запросов) - а апач обязан быть оптимизированным под конкретную ситуацию магически, причем из коробки.

netwind:
Нужно было модифицировать часть заголовка, если он явно неправильный. Например, вместо "Content-type: image/gif; Charset=UTF-8", сделать "Content-type: image/gif". Даже не представляю что там в mod_headers нужно выдумать.

SetEnvIf + Header.

netwind:
Просто приложение на бекенде слишком сложное, чтобы разумно было искать почему оно выдает такие заголовки.

Звучит страшно. Если даже такую простую проблему (четко понятно как ее воспроизвести, в чем она выражается) нельзя нормально решить - что можно сказать о более сложных ситуациях.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
N
На сайте с 06.05.2007
Offline
419
#23
myhand:
Ай нехорошо. Ну не так ты туп как прикидываешься, а?

и что теперь мне нельзя заметить формальную ложь?

myhand:
SetEnvIf + Header.

по-моему SetEnvIf не видит заголовки ответа от бекенда. А lua в nginx видит, потому что nginx специально создан для работы с бекэндом.

Да и речь не шла о конкретном заголовке, а о всех видах неправильных заголовков. На языке программирования это делается простыми условными и строковыми операциями.

M
На сайте с 16.09.2009
Offline
278
#24
netwind:
и что теперь мне нельзя заметить формальную ложь?

Можно, но пока не получилось.

netwind:
по-моему SetEnvIf не видит заголовки ответа от бекенда.

В общем-то, должно хватить Header edit с регэкспом.

netwind:
Да и речь не шла о конкретном заголовке, а о всех видах неправильных заголовков. На языке программирования это делается простыми условными и строковыми операциями.

Для подобных извращений в апаче тоже есть mod_lua. И пересобирать в сотый раз ничего не надо.

M
На сайте с 01.12.2009
Offline
235
#25

Ни-чё, ни-чё истина где-то рядом.

p.s Сории за офф топ.

Администратор Linux,Freebsd. построения крупных проектов.
N
На сайте с 06.05.2007
Offline
419
#26

myhand, ну ладно.

вернемся к началу: тест делал кто?

достаточно имитировать медленных клиентов скачивающих файлы хотя бы по 1 мб и задействующих одновременно хотя бы 50 обработчиков апача. и в тех же условиях сравнить показатель потребления памяти в nginx.

M
На сайте с 16.09.2009
Offline
278
#27
netwind:
достаточно имитировать медленных клиентов скачивающих файлы хотя бы по 1 мб и задействующих одновременно хотя бы 50 обработчиков апача. и в тех же условиях сравнить показатель потребления памяти в nginx.

Нету разницы - не заметна она на фоне потребления памяти бакендом, mysql-ми всякими там. Апач тихо засосет себе все с бакенда от скриптов и будет отдавать.

Вот смотри, для сравнения:


$ ps -o rss,command 1139
RSS COMMAND
2128 /usr/lib/apache2/mpm-event/apache2 -d /etc/apache2-proxy -k start

и


$ ps -o rss,command 31585 31584
RSS COMMAND
4520 nginx: worker process
4476 nginx: worker process

Nginx-ы вместе жрут в ~4 раза больше чем апач. А роль играют ту же самую - простейший проксирующий фронтенд. Без кеширования.

N
На сайте с 06.05.2007
Offline
419
#28

myhand, по 2 мб на каждого активного клиента, которому осуществляется передача ? или как из этих данных видно как растет потребление памяти у апача при росте числа клиентов?

А у меня это выглядит так :

ps -o rss,command `pgrep nginx`

RSS COMMAND

908 nginx: master process /usr/sbin/nginx

1144 nginx: worker process

1072 nginx: worker process

причем, процессов nginx постоянное количество - три не зависимо от количества клиентов.

Ладно, возьму твои цифры по 5 мб на каждый процесс nginx исключая master process.

Таким образом, у типичного пользователя nginx вместо апача и VPS эдак на 256мб памяти при 50 активных закачках дополнительно экономится 90 мб драгоценной памяти.

И при чем тут вконтакте вообще? Экономия очень приличная даже для унылых сайтов.

M
На сайте с 16.09.2009
Offline
278
#29
netwind:
myhand, по 2 мб на каждого активного клиента, которому осуществляется передача .

Не понял. Я описал вам *суммарное* потребление памяти. В одном примере - апач (там суммарная информация по всем тредам, top и ps это показывают как *один* процесс, независимо от клиентов). Во втором nginx.

Я попробовал "докрутить" нагрузку апачу: максимум что удалось выжать - под 5Mb.

netwind:
А у меня это выглядит так :
ps -o rss,command `pgrep nginx`
RSS COMMAND
908 nginx: master process /usr/sbin/nginx
1144 nginx: worker process
1072 nginx: worker process

У вас чуть лучше. Может буфера какие-то поменьше, может нагрузка иная, может модули какие открутили. nginx ведь дубовый - worker_connections маленький поставишь и часть запросов не обработана.

Vin_cent
На сайте с 22.01.2010
Offline
171
#30
netwind:
myhand, по 2 мб на каждого активного клиента, которому осуществляется передача .
А у меня это выглядит так :
ps -o rss,command `pgrep nginx`
RSS COMMAND
908 nginx: master process /usr/sbin/nginx
1144 nginx: worker process
1072 nginx: worker process

причем, процессов nginx постоянное количество - три не зависимо от количества клиентов.

Ладно, возьму твои цифры по 5 мб на каждый процесс nginx исключая master process.
Таким образом, у типичного пользователя nginx вместо апача и VPS эдак на 256мб памяти при 50 активных закачках дополнительно экономится 90 мб драгоценной памяти.

И при чем тут вконтакте вообще? Экономия очень приличная даже для унылых сайтов.

Логично. Ответ myhand?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий