Владимир320 Опубликовано 21 ноября, 2019 · Жалоба Вечер добрый. Может тема не новая, уже находил подобную, но не помогли советы. У меня сервер HP proliant gen 8 v2 Стоит сетевая карта 10G двуголовая Также я поменял проц С Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz НА Intel(R) Xeon(R) CPU E3-1240 v3 @ 3.40GHz Обоснованного решения не было по поводу замены проца, просто решил попробовать ""помощнее"" Ну и CentOS Linux release 7.7 Трафик примерно 2 гига на старом проце ел спокойно, на новом же (E3-1240 v3 @ 3.40GHz), когда приближается к 600-700, то проц начинает грузится на полную. Ещё момент, я проц менял уже на установленной системе, то есть centos уже стоял. Это нормальная практика? или есть кривизна в этом? tc я вешаю на два физических интерфейса, ну и режу исходящую скорость соответственно вот мои правила tc: основные правила: $TC qdisc add dev $ETH_INT root handle 1: htb default ffff $TC qdisc add dev $ETH_EXT root handle 1: htb default ffff $TC filter add dev $ETH_INT protocol ip prio 5 parent 1: u32 $TC filter add dev $ETH_EXT protocol ip prio 5 parent 1: u32 $TC class add dev $ETH_INT parent 1: classid 1:2 htb rate 4gbit $TC class add dev $ETH_EXT parent 1: classid 1:2 htb rate 4gbit $TC class add dev $ETH_INT parent 1:2 classid 1:ffff htb rate 200mbit $TC class add dev $ETH_EXT parent 1:2 classid 1:ffff htb rate 200mbit $TC qdisc add dev $ETH_INT parent 1:ffff handle ffff sfq perturb 10 $TC qdisc add dev $ETH_EXT parent 1:ffff handle ffff sfq perturb 10 для клиентов: $TC class add dev $ETH_INT parent 1:2 classid 1:$id htb rate ${speed_in}Mbit ceil ${ceil_in}Mbit $TC qdisc add dev $ETH_INT parent 1:$id handle $id sfq perturb 10 $TC filter add dev $ETH_INT protocol ip prio 5 u32 match ip dst $ip flowid 1:$id $TC class add dev $ETH_EXT parent 1:2 classid 1:$id htb rate ${speed_out}Mbit ceil ${ceil_out}Mbit $TC qdisc add dev $ETH_EXT parent 1:$id handle $id sfq perturb 10 $TC filter add dev $ETH_EXT protocol ip prio 5 u32 match ip src $ip flowid 1:$id $id я подставляю исходя из id абонента, у каждого свой в hex $ip /32 соответственно ${speed_out} ceil ${ceil_out} - скорости Ну и примерно 1300 клиентов на железке. Подскажите куда нужно смотреть? или tc не дружит по нормальнову с E3-1240 v3 @ 3.40GHz а также с centos 7. Или косяк в том, что я менял проц уже на установленной системе? Очень нужна помощь Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 21 ноября, 2019 · Жалоба 1. ipt_ratelimit 2. выключите hyper threading 3. раскидайте прерывания Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 21 ноября, 2019 · Жалоба 4 часа назад, vurd сказал: 1. ipt_ratelimit Буквально сегодня переехал с tc на сабж. в ЧНН нагрузка упала с 60 до 30% на ядро. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 21 ноября, 2019 · Жалоба 30 минут назад, pppoetest сказал: Буквально сегодня переехал с tc на сабж. в ЧНН нагрузка упала с 60 до 30% на ядро. ну думаю, что завтра вам стоит попробовать ipt_cgnat и уронить загрузку до 10% :-) А вот ТС надо предпринять все эти меры комплексно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 21 ноября, 2019 · Жалоба 24 минуты назад, vurd сказал: ну думаю, что завтра вам стоит попробовать ipt_cgnat и уронить загрузку до 10% :-) Не получится. У меня несколько сетей /24, в разброс, ковыряю сырцы на предмет возможности засунуть > 1 nat pool адресов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 22 ноября, 2019 · Жалоба 16 часов назад, vurd сказал: 1. ipt_ratelimit 2. выключите hyper threading 3. раскидайте прерывания hyper threading вырубил. по поводу прерываний irqbalance не подходит? он у меня включен и довольно ровно все раскидывает. ipt_ratelimit его вместе с tc использовать или вместо? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 22 ноября, 2019 · Жалоба 5 минут назад, Владимир320 сказал: hyper threading вырубил. по поводу прерываний irqbalance не подходит? он у меня включен и довольно ровно все раскидывает. ipt_ratelimit его вместе с tc использовать или вместо? отлично лучше руками, там немного подумать куда какие очереди прибить вместо Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 22 ноября, 2019 · Жалоба откуда он вообще берётся ipt_ratelimit? нигде не могу его найти для centos Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vurd Опубликовано 22 ноября, 2019 · Жалоба Вы просили помочь, информации выше достаточно, чтобы понять вектор исследования. Module is compatible with recent linux distributions such as Debian 7, 8, Centos 7, and Linux kernel 3.x or above. https://forum.nag.ru/index.php?/topic/108580-ipt-ratelimit/ Конкретно тыкать в ссылки и показывать как собирать под центос это уже вам нужно в другой раздел - сюда https://forum.nag.ru/index.php?/forum/78-vakansii/. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 22 ноября, 2019 · Жалоба 20 часов назад, Владимир320 сказал: Подскажите куда нужно смотреть? в perf top Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taf_321 Опубликовано 22 ноября, 2019 · Жалоба 22 часа назад, Владимир320 сказал: $TC filter add dev $ETH_EXT protocol ip prio 5 u32 match ip src $ip flowid 1:$id Я так понимаю, у вас для всех 1300 клиентов используется линейный фильтр? Переходите на схему с хэшированием. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 22 ноября, 2019 · Жалоба 29 минут назад, taf_321 сказал: Переходите на схему с хэшированием. Я бы советовал ТС сразу переходить на полисер. И проще и жрёт меньше. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 22 ноября, 2019 · Жалоба 39 минут назад, taf_321 сказал: Я так понимаю, у вас для всех 1300 клиентов используется линейный фильтр? Переходите на схему с хэшированием. у меня несколько схем, есть и с хешированием и без, в целом нагрузка на цпу одинаковая. По этому разницы не понимаю что с хешем что без. Только на поменянном процессоре(E3-1240 v3 @ 3.40GHz) жуткие вещи творятся. Пока не пробовал с отключенным HT, а так нацелен на ipt_ratelimit Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 22 ноября, 2019 · Жалоба тока пока как установить этот модуль остаётся загадкой Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 22 ноября, 2019 · Жалоба В readme к модулю написано, как его установить. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 22 ноября, 2019 · Жалоба 21 минуту назад, pppoetest сказал: В readme к модулю написано, как его установить. ну туда-то я догадался залезть)). Делаю маке и куча всякого: make -C /lib/modules/3.10.0-1062.4.1.el7.x86_64/build/ M=/tmp/ipt-ratelimit-master modules CONFIG_DEBUG_INFO=y make[1]: Entering directory `/usr/src/kernels/3.10.0-1062.4.1.el7.x86_64' CC [M] /tmp/ipt-ratelimit-master/xt_ratelimit.o In file included from /tmp/ipt-ratelimit-master/xt_ratelimit.c:44:0: /tmp/ipt-ratelimit-master/compat.h:46:24: error: redefinition of ‘xt_family’ static inline u_int8_t xt_family(const struct xt_action_param *par) ^ In file included from /tmp/ipt-ratelimit-master/xt_ratelimit.c:40:0: include/linux/netfilter/x_tables.h:77:24: note: previous definition of ‘xt_family’ was here static inline u_int8_t xt_family(const struct xt_action_param *par) ^ make[2]: *** [/tmp/ipt-ratelimit-master/xt_ratelimit.o] Error 1 make[1]: *** [_module_/tmp/ipt-ratelimit-master] Error 2 make[1]: Leaving directory `/usr/src/kernels/3.10.0-1062.4.1.el7.x86_64' make: *** [xt_ratelimit.ko] Error 2 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 22 ноября, 2019 · Жалоба Я не кодераст, но судя по тексту ошибки, у вас xt_family уже определено в include/linux/netfilter/x_tables.h, нужно править compat.h Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
kayot Опубликовано 22 ноября, 2019 · Жалоба 8 часов назад, Владимир320 сказал: у меня несколько схем, есть и с хешированием и без, в целом нагрузка на цпу одинаковая. Это означает лишь то что хеширование сделано неверно и не работает. Читайте статьи, благо их на эту тему сотни. Или поставьте скрипт sc для генерации правил tc на лету. Или собирайте ipt_ratelimit. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
h3ll1 Опубликовано 24 ноября, 2019 (изменено) · Жалоба On 11/21/2019 at 9:01 PM, pppoetest said: Буквально сегодня переехал с tc на сабж Не верю. с TC . Изменено 24 ноября, 2019 пользователем h3ll1 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taf_321 Опубликовано 24 ноября, 2019 · Жалоба В 22.11.2019 в 20:38, Владимир320 сказал: у меня несколько схем, есть и с хешированием и без, в целом нагрузка на цпу одинаковая. Такого не может быть в принципе. Если нагрузка одинакова, значит вы неправильно работаете с хэшами и у вас все равно все сводится к линейным фильтрам. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 24 ноября, 2019 · Жалоба 3 часа назад, h3ll1 сказал: Не верю. с TC . Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 24 ноября, 2019 · Жалоба 2 часа назад, taf_321 сказал: Такого не может быть в принципе. Если нагрузка одинакова, значит вы неправильно работаете с хэшами и у вас все равно все сводится к линейным фильтрам. Ну хотя если посмотреть на график, там где трафик 2.5г (с хешем) и там где трафиг ~1.3(без хеша) то нагрузка cpu одинакова в пиках 30%. Чёт не придавал значения этому. Согласен, не правильно. Перейду на хеш Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
pppoetest Опубликовано 24 ноября, 2019 · Жалоба 1 час назад, Владимир320 сказал: Перейду на хеш Если сеть будет расти, всё равно перейдёте на полисер. Либо на железное железо. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 24 ноября, 2019 · Жалоба Если $seed_out и $cell_out одинаковые, то особого смысла в tc как-то и нет. Проще полисер использовать. Выше есть предложения. Если же все же нужен tc для выдачи свободной полосы, то действительно меняйте фильтр. Мне, например, нравится классификация трафика через ipset. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Владимир320 Опубликовано 25 ноября, 2019 · Жалоба вот я пытаюсь поставить этот полисер на centos 7, в какуюто головную боль превращается данный процесс, то на одно ругается, то на другое. В README есть инструкш на дебиан убунту. У кого получилось на центосину поставить, тот либо умный очень либо я ду..к. ПОка склоняюсь ко второму варианту. из проделанного я обновился до версии uname -a Linux len_new 5.3.12-1.el7.elrepo.x86_64 make make[1]: Entering directory `/usr/src/kernels/5.3.12-1.el7.elrepo.x86_64' make[1]: *** No rule to make target `modules'. Stop. make[1]: Leaving directory `/usr/src/kernels/5.3.12-1.el7.elrepo.x86_64' make: *** [xt_ratelimit.ko] Error каталог "/usr/src/kernels/5.3.12-1.el7.elrepo.x86_6" почему то пуст Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...