ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Изменение limit_rate "н а ходу" без обрыва по дключений



Eugene wrote:
Вобщем да. Задача стоит именно эта.
Мне кажется, что более низкоуровнеыве средства значительно сильнее напрягают железо. Если просто залить в фаерфол весь список то при большом трафике он начинает активно жрать процессор. В общем это неудивительно - каждый пакет приходится проверять на соответствие списку сетей, а работа это не маленькая, к тому же фаервол "крутится" в ядре как привилегированный процесс. Я хотел как раз для облегчения нагрузки вынести проверку на уровень приложения, чтобы nginx при подключении сам решал, что вот это соединение с такми-то ограничением и дальше уже работал с ним, не делая каждый раз проверку.
Не все пакетные фильтры одинаково полезны :-) Поставьте отдельн(ую|ые) машинку на openbsd, которая будет разруливать ограничения по скорости и больше ничего делать не будет. У неё пакетный фильтр работает с большими таблицами адресов/сетей очень хорошо. А ALTQ очень эффективно придушивает именно исходящий трафик. Эту машинку можно даже бездисковой сделать.

Так вам на сервере в целом надо обеспечить непревышение зарубежным трафиком русского?
Для этого более низкоуровневые средства надо использовать. На Linux
надо собрать ядро с патчем ipsets, залить в него базу сетей, сделать
чтобы iptables маркировал соединения, а tc - ограничивал скорость. На
FreeBSD как-то тоже с помощью dummynet можно (хотя насколько я
понимаю, классификация пакетов при большом количестве подсетей может
потреблять много процессора).




 




Copyright © Lexa Software, 1996-2009.