Главная / Продвижение сайта / Лайфхаки / Ограничение скорости сети через iptables +

Ограничение скорости сети через iptables +


14.09.2015 18:191247

   На одном VPS’е обнаружилась проблема при больших нагрузках на исходящий трафик сервер переставал отдавать контент. 
Начал исследования системы. Выяснилось что в файле /proc/user_beancounters параметр tcpsndbuf упирается в ограничения хостера. 

grep tcpsndbuf /proc/user_beancounters 

tcpsndbuf 5287230 5287232 5280000 7392000 204904366 

tcpsndbuf -Полный размер буферов, используемых чтобы посылать данные через TCP-соединения сети. 

   Следовательно надо как то ограничить исходящую скорость. Решено было использовать iptables. Плюс такого выбора в том, что iptables это системная возможность. Минус в том, что iptables ограничивает трафик не в байтах, а в пакетах. 



В итоге в iptables были внесены цепочки и правила: 

iptables -N SPEED_LIMIT 
iptables -A SPEED_LIMIT -m limit —limit 357/sec —limit-burst 1000 -j ACCEPT 
iptables -A SPEED_LIMIT -j DROP 

iptables -I INPUT -j SPEED_LIMIT 


   Создается новая цепочка SPEED_LIMIT, в которой всего два правила. Первое ограничивает скорость, второе отвергает все пакеты не принятые первым правилом.Последняя команда заносится в цепочку OUTPUT и направляет исходящий трафик на цепочку SPEED_LIMIT. 

 



   Основная работа происходит в первом правиле цепочки SPEED_LIMIT. Каждый проходящий пакет увеличивает счетчик на 1, каждую секунду счетчик отправленных будет уменьшен на 357. Когда счетчик достигнет 1000 пакеты начнут отвергаться до тех пор пока счетчик не уменьшится. В итоге будет достигнуто ограничение скорости. 
Параметры 357 и 1000 были подобраны опытным путем. 
Данное правило дает возможность первые несколько мегабайт получить с сервера на максимально возможной скорости, а при большой нагрузке включается механизм ограничения. 

  Дальше надо сделать восстановление этих правил в системе при перезагрузке. Поискал файлы похожие на iptables: 

find /etc/ -iname ‘*ipt*’ 

/etc/aide/aide.conf.d/31_aide_initscripts 
/etc/network/if-up.d/iptables 
/etc/wide-dhcpv6/dhcp6c-scrip 

Вот похоже следующий файл то что надо 
/etc/network/if-up.d/iptables 

Посмотрим что у него внутри 

cat /etc/network/if-up.d/iptables 

#!/bin/sh 
/sbin/iptables-restore /var/lib/iptables/rules 

Тут как раз и лежат настройки iptables применяемые при запуске системы: 
/var/lib/iptables/rules 

Запишу текущие настройки для последующего восстановления 

iptables-save /var/lib/iptables/rules


Лайфаки





«Ограничение скорости сети через iptables +» - Похожие страницы

Анализ скорости сайта Анализ скорости сайта Скорость загрузки страниц в данный момент становится одним из важнейших критериев ранжирования вебсайтов. В рассчете параметров загрузки и выводе конечной оценки эквивалентной 0 - 100% , учитывается множеств...
Wi-Fi через лампочку? Wi-Fi через лампочку?++ Учeные шанхайского университeта Фудань создали лaмпочку, которая излучаeт сигнал Wi-Fi. Учeные назвали свое изобрeтение Li-Fi. В этом устройствe информация передаeтся посредством не рaдиоволн, а световых вол...
к любви – через Интернет К любви – через Интернет++ Случайные встрeчи и знакомства при учaстии друзей остaются в прошлом: всe больше современных мужчин и жeнщин предпочитают самостоятельно зaниматься поиском второй половинки, иcпользуя для этого всeвозможные ...
Как зарегистрировать домен через систему WebMoney + Если у Вас еще нет кошелька WebMoney, Самое время его завести. Вы можете легко это сделать, перейдя по адресу http://www.webmoney.ru Нажимайте на большую зеленую кнопку справа и точно следуйте инструкции. Ил...
рез год во всем мире может появиться бесплатный интернет Через год во всем мире может появиться бесплатный интернет ++ В 2015 году амeриканская организация MDIF начнeт создание новой мировой сeти доступа в интернет, которaя будет называться Outernet (Аутeрнет). В компании планируют размeстить на околоземной орбите множeство ...

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