URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 35919
[ Назад ]

Исходное сообщение
"OpenNews: Ограничение пропускной способности в Apache используя mod_bwshare"

Отправлено opennews , 07-Ноя-06 01:05 
В заметке "Avoiding greedy webclients with mod_bwshare (http://www.debian-administration.org/articles/458)" рассказывается об использовании Apache модуля mod_bwshare (http://www.topology.org/src/bwshare/README.html) для ограничения пропускной способности и числа запросов к web-серверу в единицу времени.

Ограничения задаются через пять параметров:
-  BW_tx1cred_rate - устанавливает ограничение для IP на число запросов в секунду (files/second);
-  BW_tx1debt_max - максимальный лимит для BW_tx1cred_rate (files).
-  BW_tx2cred_rate - устанавливает ограничение трафика для IP, байт в секунду (bytes/second).
-  BW_tx2debt_max - максимальный лимит для BW_tx2cred_rate (bytes).
-  BW_subnet_limit - позволяет задать ограничения, не только для отдельных IP, но и для подсети.


Модуль написан с оглядкой на экономию ресурсов процессора и низкое потребление памяти. Контролировать текущее состояние можно через web-интерфейс. Поддерживается как Apache 1.3, так и Apache 2.x.


В заключение, приведу ссылки на две небольшие заметки связанные с apache:

-  "Boosting Apache Performance by using Reverse Proxies (http://linuxgazette.net/132/pfeiffer.html)" - использование Squid в режиме web акселератора;

-  "Troubleshooting Apache using strace (http://linuxgazette.net/132/vishnu.html)" - использование strace для выявления причины неотправки почты из php скрипта.


URL: http://www.debian-administration.org/articles/458
Новость: http://www.opennet.me/opennews/art.shtml?num=8714


Содержание

Сообщения в этом обсуждении
"Ограничение пропускной способности в Apache используя mod_bwshare"
Отправлено гость , 07-Ноя-06 01:05 
Вопрос к Максу и остальным товарищам работающим над большими веб-проектами: что лучше - использовать данный модуль, шейпинг на уровне iptables, или на уровне внешней морды к апачу типа nginx\squid?

"Ограничение пропускной способности в Apache используя mod_bw..."
Отправлено Maxim Chirkov , 07-Ноя-06 10:06 
>Вопрос к Максу и остальным товарищам работающим над большими веб-проектами: что лучше
>- использовать данный модуль, шейпинг на уровне iptables, или на уровне
>внешней морды к апачу типа nginx\squid?

Шейпить имеет смысл только на низкоскоросных каналах, если канал нормальный, достаточно ограничить число одновременных коннектов на IP, для защиты от DoS атак.
Через apache модуль делать это не рекомендую, из тех модулей что я смотрел, все линейно на каждый запрос перебирали состояние всех httpd процессов, если процессов сотня - нормально, а если тысяча - уже накладно. Оптимальным будет использование nginx или через пакетный фильтр.


"Ограничение пропускной способности в Apache используя mod_bw..."
Отправлено гость , 07-Ноя-06 14:00 
> Шейпить имеет смысл только на низкоскоросных...
> ... Оптимальным будет использование nginx или через пакетный фильтр

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


"Ограничение пропускной способности в Apache используя mod_bwshare"
Отправлено Алексей , 07-Ноя-06 01:38 
Лучше такие вещи не ограничивать.
Чем быстрее клиенты будут скачивать запрашиваемые данные - тем меньше в итоге нагрузка на сервер, т. к. сам процесс скачивания пока длится - создает нагрузку.
Если же активность какого-то из клиентов признается недоброкачественной (например, дос-атака) - то его банить надо, а не ограничивать канал.

А nginx для большого проекта юзать крайне желательно. Единственный его недостаток - нету кеширования, для кеширования придется дополнительно подключать squid, или еще лучше - Apache2/worker.mpm.


"Ограничение пропускной способности в Apache используя mod_bw..."
Отправлено гость , 07-Ноя-06 04:14 
> для кеширования придется дополнительно подключать squid, или еще лучше - Apache2/worker.mpm

чего-то я вот этот момент не понял - какое отношение имеет worker.mpm к кэшированию - это ведь просто один из способов обработки клиентских запросов. Можно по-подробнее?


"Ограничение пропускной способности в Apache используя mod_bwshare"
Отправлено Алексей , 07-Ноя-06 01:40 
А если проблема в том, что канал ограничен, и нужно его по-справедливости разделить между клиентами - то это на уровне iptables/tc надо делать.