HTB: программа для более удобного просмотра состояния классов и u32 фильтров
Приветствую!
Еще в 2007г. для себя написал программу, с помощью которой делал вывод 'tc -s class show ...' и 'tc -s filter show ...' более понятным для прочтения, ибо было крайне неудобно копаться в выводе tc, пытаясь найти и разобрать в куче крайне неудобоваримого текста нужное. Например:
Вывод tc -s class show dev eth3:
class htb 1:2 root rate 100000Kbit ceil 100000Kbit burst 14087b cburst 14087b Sent 60076018 bytes 50148 pkt (dropped 0, overlimits 0 requeues 0) rate 72bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 1097 ctokens: 1097 class htb 1:3 parent 1:2 rate 50000Kbit ceil 50000Kbit burst 7843b cburst 7843b Sent 60076018 bytes 50148 pkt (dropped 0, overlimits 0 requeues 0) rate 72bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 1216 ctokens: 1216 class htb 1:4 parent 1:3 leaf 4: prio 0 rate 256000bit ceil 256000bit burst 1631b cburst 1631b Sent 154909221 bytes 137570 pkt (dropped 1188, overlimits 0 requeues 0) rate 232288bit 22pps backlog 0b 3p requeues 0 lended: 50148 borrowed: 0 giants: 0 tokens: 45621 ctokens: 45621 class htb 1:5 parent 1:3 leaf 5: prio 0 rate 96000bit ceil 96000bit burst 1611b cburst 1611b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 131184 ctokens: 131184 class htb 1:6 parent 1:3 leaf 6: prio 0 rate 5000Kbit ceil 5000Kbit burst 2224b cburst 2224b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 3476 ctokens: 3476
Вывод tc -s filter show dev eth3:
filter parent 1: protocol ip pref 100 u32 filter parent 1: protocol ip pref 100 u32 fh 800: ht divisor 1 filter parent 1: protocol ip pref 100 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:4 (rule hit 292164192 success 50454) match c200ce03/ffffffff at 12 (success 698861 ) match 00000019/0000ffff at 20 (success 50454 ) filter parent 1: protocol ip pref 100 u32 fh 800::801 order 2049 key ht 800 bkt 0 flowid 1:6 (rule hit 292113593 success 0) match c200ce2c/ffffffff at 12 (success 0 )
Что из всего этого делает моя программа:
Class 1:2 RATE: 100000Kbit ; CEIL: 100000Kbit Current rate: 72bit ; 0pps Shaper status: Inactive Dropped: 0 Class 1:2=>1:3 RATE: 50000Kbit ; CEIL: 50000Kbit Current rate: 72bit ; 0pps Shaper status: Inactive Dropped: 0 Class 1:2=>1:3=>1:4 RATE: 256000bit ; CEIL: 256000bit Current rate: 232288bit ; 22pps Shaper status: Active, backlog: 0b ; 3p Dropped: 1188 Associated filters: From: 194.0.206.3/32 dst port: 25 Class 1:2=>1:3=>1:5 RATE: 96000bit ; CEIL: 96000bit Current rate: 0bit ; 0pps Shaper status: Inactive Dropped: 0 Class 1:2=>1:3=>1:6 RATE: 5000Kbit ; CEIL: 5000Kbit Current rate: 0bit ; 0pps Shaper status: Inactive Dropped: 0 Associated filters: From: 194.0.206.44/32 Classes total: 5 Total active: 1 Total used: 3
Данные выводятся согласно построенного дерева, а не как попало у tc. Можно посмотреть отдельно только полосы, задерживающие траффик, или через которые проходит траффик.
Если это хоть кому-нибудь может показаться полезным, могу выдать исходник (ebuild тоже могу сделать)...
ЗЫ
Не сочтите за рекламу (да и какая нафиг реклама: не заработка ради все это пишу). Ветку "Системное администрирование" я выбрал исходя из того, что такая вещь может понадобиться только админу.
Да, и еще - я умышленно подправил в class htb 1:4 данные, чтобы получить более наглядный пример полосы, задерживающей траффик. В реальности никаких подтасовок нет. :)
- Для комментирования войдите или зарегистрируйтесь
а программа выдает в реальном
а программа выдает в реальном времени статистику(или хотябы с заданным интервалом)?
Выкладывай, комунить да понадобится
:)
Это не статистика, а более понятная (как мне кажется) замена htb class show dev и htb filter show dev .
Т.е. - после вызова получаем картину, которая есть здесь и сейчас.
Уважаемый, а цена вопроса?
Уважаемый, а цена вопроса?
Какая может быть цена? Все
Какая может быть цена? Все совершенно бесплатно. Вот сейчас сижу, исходники причесываю. Надеюсь, через час-полтора выложу ссылку.
Или это в другом смысле вопрос?
Исходники + ebuild
Выложил ebuild и исходники. Хотя, если пользоваться ebuild-ом, он все равно сам их оттуда потянет.
Для успешной сборки никаких особых условий не требуется. Главное, чтобы была базовая система.
Снимаю шляпу, даже немного
Снимаю шляпу, даже немного завидую, что учился на автослесаря)
To slepnoga: Я еще на прошлой
To slepnoga:
Я еще на прошлой неделе получил EMail от форума с текстом вашего личного сообщения по теме топика. В ответ написал личным сообщением в этом форуме. Вы его получали? Мне пришел только EMail, а личное сообщение почему-то нет... Именно поэтому решил на всякий случай переспросить.
Да, и даже посмотрел на
Да, и даже посмотрел на сборку - (с точки зрения пейсателя ебилдов) оно не доделано.
Основные претензии к билд-системе: "-j1". цель инсталл, LDFLAGS
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Понятно. И что надо сделать?
Понятно. И что надо сделать? Вроде бы там все просто как сапог, а насчет -j1 - нужно ли там больше? Оно и так за 5 секунд собирается
а насчет -j1 - нужно ли там
Oно должно собиратся при любых значениях MAKEOPTS, а не только -j1 , по крайней мере не вылетать с ошибками.
и можно сделать инсталл в дестдир, а не в /usr/local ?
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
???
Были вылеты с ошибками? Я крайне удивлен... А можно посмотреть на сообщения?
Не совсем понял... Я сейчас попробовал ebuild собрать - ставится в /usr/sbin... :
Оно и собирается при любых... См. подсветку жирным шрифтом... /dev-lang/perl тоже так собирается.
Я не претендую на абсолютное знание вопроса, опыта в ebuildо-строении немного, точнее - совсем нет. Этот - первый сделанный. Прошу тапками не кидаться. Отлаживал его не на одной системе, специально пробовал на чужих системах, ошибок не обнаружил, иначе бы не стал выкладывать.
Так что - если все-таки есть ошибки или еще что-то, чего я не учел, пожалуйста, скажите, буду исправлять.
slep@mini
repoman -v full в в папочке с ебилдом обязателен
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Про repoman понял, завтра
Про repoman понял, завтра утром будем исправлять...
Вот это:
меня крайне удивило. Судя по логу - файлы *.o должны быть собраны. Хотя, если '-j4', то может быть, надо попробовать... Я '-j1' воткнул только потому, что не был уверен, что он соберется многопоточно.
Кстати, а можно узнать, какой версии portage? У себя поставлю, проверю. И на чужих системах проверю по возможности.
Кстати, а можно узнать, какой
могу тестить на любой , этот вывод с rc56
2 . меик не подхватывает мои флаги , что сделать понятно ( типа CFLAGS="$CFLAGS ваши флаги"), но это не Ъ
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
fixed
Исправлен Makefile, теперь все собирается хоть -j1, хоть -j100, и с CFLAGS все ОК.
Исправлен ebuild в соответствии с рекомендациями и требованиями repoman-a. Результат repoman лежит в каталоге ebuild-a (repoman-result.txt).
Попробуйте сейчас, все ли в порядке. Я проверял на нескольких системах - все нормально.
Вот ebuild и исходники.
.
Тут
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)