<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Подскажите пожалуйста куда рыть, не могу оптимизировать шейпер tc...]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=28038</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=28038&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Подскажите пожалуйста куда рыть, не могу оптимизировать шейпер tc...».]]></description>
		<lastBuildDate>Tue, 30 Apr 2013 20:08:14 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Подскажите пожалуйста куда рыть, не могу оптимизировать шейпер tc...]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=343500#p343500</link>
			<description><![CDATA[<p>Уважаемые знатоки помогите решить проблему стоит cent 6.3, есть два роутера на первом в пик 95000 соеденений на втором 125000... На первом роутере пинг 0-1мс в пик потерь нет, на втором пинг 1-10мс 6% потерь, с 50 пакетов, скорость плохо режиться как только я тормажу шейпер, пинг спадает потерь нет... Изначально скрипт был без хэш таблиц переписав на хэш таблицы я надеялся проблема уйдёт, но нет.. Я написал вот такой скрипт: </p><div class="codebox"><pre><code>stop &gt; /dev/null 2&gt;&amp;1
#Добавление корневых дисциплин
#in
${TC} qdisc add dev eth1 root handle 1: htb
#out
${TC} qdisc add dev eth0 root handle 1: htb
#Добавление корневых классов
#in
${TC} class add dev eth1 parent 1: classid 1:1 htb rate 1024mbit
#out
${TC} class add dev eth0 parent 1: classid 1:1 htb rate 1024mbit
#Добавление хэш-таблиц на каждую подсеть
${CAT} ${NETS} | ${SED} -r &#039;s/192\.168\.([0-9]{1,2}).{1,}/\1/&#039; | while read &#039;seg&#039;
do
${TC} filter add dev eth1 parent 1: prio 1 handle ${seg}: protocol ip u32 divisor 256
${TC} filter add dev eth1 parent 1: protocol ip u32 ht 800:: match ip dst 192.168.${seg}.0/24 hashkey mask 0x000000ff at 16 link ${seg}:
done
${CAT} ${DATA} ${DATAEX} | while read &#039;ip&#039; &#039;speed&#039;
do
local THREEOC=`${ECHO} ${ip} | $SED -r &#039;s/192\.168\.([0-9]{1,2}).{1,}/\1/&#039;`
local THREEOCHEX=`${PRINTF} &#039;%x\n&#039; ${THREEOC}`
local FOUROC=`${ECHO} ${ip} | ${SED} -r &#039;s/192\.168\.[0-9]{1,2}.([0-9]{1,3})/\1/&#039;`
local FOUROCHEX=`${PRINTF} &#039;%x\n&#039; ${FOUROC}`
local ID=`${PRINTF} &#039;%x\n&#039; ${THREEOC}${FOUROC}`
#in
#Добавление классов для каждого ip
${TC} class add dev eth1 parent 1:1 classid 1:${ID} htb rate ${speed}kbit ceil ${speed}kbit prio 2 quantum 15365
${TC} qdisc add dev eth1 parent 1:${ID} handle ${ID}: sfq perturb 10
${TC} filter add dev eth1 protocol ip prio 2 u32 ht ${THREEOC}:${FOUROCHEX}: match ip dst ${ip}/32 flowid 1:${ID}
#out
#Добавление классов для каждого ip
${TC} class add dev eth0 parent 1: classid 1:${ID} htb rate $[speed/2]kbit ceil $[speed/2]kbit prio 2 quantum 15365
${TC} qdisc add dev eth0 parent 1:${ID} handle ${ID}: sfq perturb 10
${TC} filter add dev eth0 parent 1: protocol ip prio 2 u32 ht 800:: match ip src ${ip}/32 flowid 1:${ID}
#Дублируем списки для дальнейшей проверки
${CAT} ${DATA} &gt; ${DATA}.chk
${CAT} ${DATAEX} &gt; ${DATAEX}.chk
#Сообщение в лог
${ECHO} &quot;${DATE} $0  Шейпер запущен...&quot; &gt;&gt; ${LOG}
done</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (DECAL)]]></author>
			<pubDate>Tue, 30 Apr 2013 20:08:14 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=343500#p343500</guid>
		</item>
	</channel>
</rss>
