Jump to content
Калькуляторы

Небольшой вопрос про ipfw buckets

Всем привет.

 

Кто знает - вот если я создаю пайп командой ipfw pipe 04000 config bw 512Kbit/s mask dst-ip 0xffffffff buckets 1000

 

И потом в него загоняю абонентов, правилом вида ipfw pipe 4000 ip from any to 10.254.4.0/22 out via vlan2 (vlan2 - интерфейс на VPN-серверы).

 

Когда пишу ipfw pipe show, и ищу там пайп 04000, он выдаёт:

 

04000: 512.000 Kbit/s 0 ms 50 sl. 44 queues (1000 buckets) droptail

mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000

BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp

268 ip 0.0.0.0/0 10.254.5.80/0 2264 1049297 0 0 0

269 ip 0.0.0.0/0 10.254.5.81/0 1329 907502 0 0 0

271 ip 0.0.0.0/0 10.254.5.83/0 855 170618 0 0 0

310 ip 0.0.0.0/0 10.254.5.42/0 863 114054 0 0 0

311 ip 0.0.0.0/0 10.254.5.43/0 198 131476 0 0 0

319 ip 0.0.0.0/0 10.254.5.35/0 18 1040 0 0 0

324 ip 0.0.0.0/0 10.254.5.24/0 539 31368 0 0 0

333 ip 0.0.0.0/0 10.254.5.17/0 2342 1347866 0 0 0

...

...

 

 

Внимание, вопрос :) 44 queues в записи выше - это текущее количество используемых buckets? Т.е. количество buckets должно быть больше, чем число одновременных flow-ов? Или я что-то не так понимаю?

Edited by networks

Share this post


Link to post
Share on other sites
Внимание, вопрос :) 44 queues в записи выше - это текущее количество используемых buckets? Т.е. количество buckets должно быть больше, чем число одновременных flow-ов? Или я что-то не так понимаю?

44 это количество активных flows. buckets это размер хэш таблицы, используемой для раскладывания пакетов по flows. Если buckets=1, то хэш поиск вырождается в линейный.

Наращивать кол-во buckets надо если net.inet.ip.dummynet.search_steps/net.inet.ip.dummynet.searches >> 1, иначе это просто раходование памяти ядра.

Share this post


Link to post
Share on other sites

если у меня столько

echo `sysctl -n net.inet.ip.dummynet.search_steps; echo /; sysctl -n net.inet.ip.dummynet.searches`|bc -l

.89259567112837217388

 

то бакетсы надо наращивать или наоборот лучше уменьшить?

Share this post


Link to post
Share on other sites

Что-то mikevlz и z18 прямо противоположные вещи советуют.

 

И кстати, про weight в queue еще вопрос - приоритет для flow больше, если weight имеет меньшее значение, или если бОльшее?

Share this post


Link to post
Share on other sites
если у меня столько

echo `sysctl -n net.inet.ip.dummynet.search_steps; echo /; sysctl -n net.inet.ip.dummynet.searches`|bc -l

.89259567112837217388

 

то бакетсы надо наращивать или наоборот лучше уменьшить?

Это значит, что у Вас i386 система, и эти счетчики переполнились X раз. Делать на их основании выводы не стоит.

Share this post


Link to post
Share on other sites
Что-то mikevlz и z18 прямо противоположные вещи советуют.

 

И кстати, про weight в queue еще вопрос - приоритет для flow больше, если weight имеет меньшее значение, или если бОльшее?

чем больше weight тем приоритетней в пайпе.

 

 

если у меня столько

echo `sysctl -n net.inet.ip.dummynet.search_steps; echo /; sysctl -n net.inet.ip.dummynet.searches`|bc -l

.89259567112837217388

 

то бакетсы надо наращивать или наоборот лучше уменьшить?

Это значит, что у Вас i386 система, и эти счетчики переполнились X раз. Делать на их основании выводы не стоит.

а есть возможность спросить эти счётчики?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this