s.lobanov Опубликовано 3 июня, 2012 · Жалоба При создании большого количества интерфейсов возникает проблема в том, что чем больше их уже существует в системе, тем медленнее они создаются(проверял на ядрах 2.6.32 и 3.2.17 из репозиториев debian). Может кто-то сказать почему это происходит и как вылечить? Пример скрипта, который наглядно это демонстрирует: vlan.php <?php system("ifconfig eth1 up"); system("vconfig add eth1 2"); system("ifconfig eth1.2 up"); system("ifconfig eth1 up"); system("vconfig add eth1 3"); system("ifconfig eth1.3 up"); system("ifconfig eth1 up"); system("vconfig add eth1 4"); system("ifconfig eth1.4 up"); system("ifconfig eth1 up"); system("vconfig add eth1 5"); system("ifconfig eth1.5 up"); for($i=1;$i<=1000;$i++) { system("vconfig add eth1.2 $i"); system("ifconfig eth1.2.$i up"); system("vconfig add eth1.3 $i"); system("ifconfig eth1.3.$i up"); system("vconfig add eth1.4 $i"); system("ifconfig eth1.4.$i up"); system("vconfig add eth1.5 $i"); system("ifconfig eth1.5.$i up"); } ?> выполнять php -f vlan.php (из-под рута) Если у кого-то не тормозит скрипт под конец, то поделитесь версией ОС(и ядра, если не родное). Такая же ситуация возникает не только при создании .1Q или Q-in-Q интерфейсов, но и при попытке создать большое кол-во ppp-интерфейсов Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
voron Опубликовано 3 июня, 2012 · Жалоба Попробуйте использовать ip вместо ifconfig/vconfig Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 3 июня, 2012 · Жалоба voron попробовал, никакой разницы, что ip, что vconfig+ifconfig Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Megas Опубликовано 3 июня, 2012 · Жалоба а чо дергаете постоянно eth1? сложно поставить проверку на его состояние из системных переменных) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 3 июня, 2012 · Жалоба Megas вы о чём? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
voron Опубликовано 3 июня, 2012 · Жалоба попробовал, никакой разницы, что ip, что vconfig+ifconfigтогда похоже вы не добьетесь большой скорости создания/удаления интерфейсов, разве что ядро найдете где попатчить. Вам часто и быстро нужно создавать много интерфейсов? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 3 июня, 2012 · Жалоба Вам часто и быстро нужно создавать много интерфейсов? да Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 3 июня, 2012 · Жалоба Если кому-то интересно, то проблема решена в 3.5.0-rc1(сегодняшний релиз ядра) 3.5.0-rc1# time php -f vlan.php > /dev/null real 0m35.963s user 0m0.544s sys 0m5.940s 3.3.7 # time php -f vlan.php > /dev/null real 7m5.256s user 0m0.636s sys 6m20.792s 2.6.32 # time php -f vlan.php > /dev/null real 7m38.243s user 0m4.836s sys 7m34.624s Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
voron Опубликовано 3 июня, 2012 (изменено) · Жалоба А скорость удаления не тестировали? PS 36 секунд это быстрее конечно чем 7 минут, но всё равно не то чтобы очень быстро, как например 1 сек. Не смотрели, на что именно уходит время? Изменено 3 июня, 2012 пользователем voron Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 3 июня, 2012 · Жалоба Там куча инициализаций и добавлений во всякие списки. Добавления, как правило, через экслюзивный доступ через блокировку. Плюс там ещё UP интерфейса, это ещё время... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 3 июня, 2012 · Жалоба будет время - посмотрю как профилировать ядро(раньше не занимался низкоуровневым программированием/отладкой/профилированием) скорость удаления тестировал, она меньше чем скорость создания Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 3 июня, 2012 · Жалоба ip и batch режим используйте Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
xeb Опубликовано 4 июня, 2012 · Жалоба ip и batch режим используйте ppp интерфейсы тоже создаются и удаляются медленно, особенно после 1000 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vitalyb Опубликовано 4 июня, 2012 · Жалоба Скорость создания очень сильно просаживается при включении опции SYSCTL_SYSCALL_CHECK (Kernel hacking -> Sysctl checks), но и без нее особо не блещет и зависит от кол-ва существующих интерфейсов. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexaaa Опубликовано 5 июня, 2012 (изменено) · Жалоба Vlan на Debiane очень зависит от дров и сетевых, должна быть поддержка протокола 8021q сетевой картой, и модуль 8021q должен быть подгружен в системе, очень хорошо работают c vlan сетевые D-Link DGE-528T и Intel E1G42ETBLK, значение mtu стандартное как на коммутаторах, простые дешёвые сетевые будут тупить при перезагрузке, прописываем vlan так auto vlan333 iface vlan333 inet static address 10.90.90.1 netmask 255.255.255.0 mtu 1500 vlan_raw_device eth1 поднимаем или удаляем так ifup vlan333, ifdown vlan333 Изменено 5 июня, 2012 пользователем alexaaa Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Tem Опубликовано 5 июня, 2012 · Жалоба поднимаем или удаляем так ifup vlan333, ifdown vlan333 Всё равно тупить будет, а уж грузиться скока оно будет, если там под несколько сотен вланом, так ето вообще жесть Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
voron Опубликовано 5 июня, 2012 · Жалоба ip и batch режим используйтеможно примеры batch-режима у ip, что-то в мане не нашел ничего позволяющего делать а-ляip addr add 127.0.0.2/32 127.0.0.3/32 dev lo Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 5 июня, 2012 · Жалоба будет время - посмотрю как профилировать ядро iperf, мануал есть, указать на vmlinux (непакованный необрезанный бинарник со всем дебаг инфо) - и вперед... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexaaa Опубликовано 5 июня, 2012 (изменено) · Жалоба а сетевушка у вас какая, у меня DGE-560T была тупила постоянно перед и после рубета, с DGE-528T работает нормально. Изменено 5 июня, 2012 пользователем alexaaa Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Alex/AT Опубликовано 5 июня, 2012 · Жалоба iperf, мануал есть, указать на vmlinux (непакованный необрезанный бинарник со всем дебаг инфо) - и вперед... Абсолютно в точку. Только не iperf, а oprofile. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 5 июня, 2012 · Жалоба ip и batch режим используйтеможно примеры batch-режима у ip, что-то в мане не нашел ничего позволяющего делать а-ляip addr add 127.0.0.2/32 127.0.0.3/32 dev lo ip -force -batch add.batch centaur ~ # cat add.batch addr add 127.0.0.2/32 dev lo addr add 127.0.0.3/32 dev lo addr add 127.0.0.4/32 dev lo centaur ~ # ip addr show dev lo 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet 127.0.0.2/32 scope host lo inet 127.0.0.3/32 scope host lo inet 127.0.0.4/32 scope host lo Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 5 июня, 2012 · Жалоба а сетевушка у вас какая, у меня DGE-560T была тупила постоянно перед и после рубета, с DGE-528T работает нормально. например такая 02:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM57711E 10-Gigabit PCIe но это не сильно принципиально в данном случае Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
klisha Опубликовано 15 декабря, 2012 · Жалоба Тема актуальна. Скажите кто как решает? особенно интересует решение на RH-совместимых дистрибутивах. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 15 декабря, 2012 · Жалоба klisha Я просто собираю ядро из последних. В последний раз собирал 3.6.9 ванильное, всё отлично работает, интерфейсы очень быстро создаются Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Wingman Опубликовано 15 декабря, 2012 · Жалоба Я правильно понимаю, что вы подобие "ip unnumbered" + QinQ на брасах делаете? Если не секрет - сколько одна коробка вланов терминирует + сколько трафика обслуживает? =) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...