QWE
-
Публикации
1251 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем QWE
-
-
google по linux kernel usb_wait ничего вразумительного не нашел
по ссылкам
http://wiki.alpinelinux.org/wiki/Installing_Alpine_on_USB
http://wiki.tinycorelinux.net/wiki:boot_codes_explained
есть параметр для ядра waitusb=Х
-
Опубликовано · Изменено пользователем QWE · Жалоба на ответ
"PKGPATH не определен в параметрах ядра. Ессно, никто никуда не сможет грузиться. Смотрите конфиги ваши сислинукса..."
[root@testrouter syslinux]# more syslinux.cfg
DISPLAY syslinux.dpy
TIMEOUT 2
APPEND reboot=bios
DEFAULT /syslinux/linux initrd=/initrd.lrp rw root=/dev/ram0 LEAFCFG=/dev/sda1:vfat
Почему его сразу нельзя сконфигурить в полном объеме на этапе формирования файла tar.gz
Интересно, получается что-то еще нужно руками делать?
А есть полная пошаговая инструкция?
-
Опубликовано · Изменено пользователем QWE · Жалоба на ответ
Попробовал создать флешку по алгоритму OK-2004 см. пост выше.
sudo dd if=/dev/zero of=/dev/sdb bs=10M
sudo fdisk /dev/sdb ( n 1 (default) , t ( win fat32 lba ) a 1 ,w )
sudo mkdosfs -F 32 -n leaf -v /dev/sdb1
sudo dd conv=notrunc bs=440 count=1 if=/usr/lib/syslinux/mbr.bin of=/dev/sdb
sudo syslinux /dev/sdb1
sudo mount -t vfat -o rw,nosuid,nodev,quiet,shortname=mixed,uid=1000,gid=1000,umask=077,iocharset=utf8 /dev/sdb1 /home/ok/usbflash
tar -zxpvf ..686...vga.tgz -C /home/ok/usbflash
при загрузке мигает курсор (_) и все,
причем повторное изготовление флешки по инструкции http://sourceforge.net/apps/mediawiki/leaf/index.php?title=Bering-uClibc_4.x_-_User_Guide_-_Installing_the_Disk_Image не помогает (((
похоже убита флешка
-
Опубликовано · Изменено пользователем QWE · Жалоба на ответ
Сделал загрузочную флешку по этой инструкции
ядро грузится но далее получаю ошибку - см скриншот.
-
Опубликовано · Изменено пользователем QWE · Жалоба на ответ
Настроил таки сервер
Ядро вот отсюда http://alex-at.ru/linux/centos-6-2-rps
[root@testrouter ~]# uname -a
Linux testrouter.mservice 2.6.32-220.7.1.el6.alex.rps.2.x86_64 #1 SMP Sat Mar 24 11:36:12 MSK 2012 x86_64 x86_64 x86_64 GNU/Linux
[root@testrouter ~]#
Сетевая
06:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
06:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
Драйвер по умолчанию который шел с ядром
[root@testrouter ~]# ethtool -i eth0
driver: igb
version: 3.0.6-k
firmware-version: 1.2-1
bus-info: 0000:06:00.0
[root@testrouter ~]#
Драйвер грузится по умолчанию, хотя поиграться можно всего только одним параметром
[root@testrouter src]# modinfo igb | grep parm
parm: max_vfs:Maximum number of virtual functions to allocate per physical function (uint)
[root@testrouter src]#
хотя в исходниках более нового драйвера параметров для тюнинга очень много.
Очереди создаются как надо. но во время тестов картина по рерываниям такая
58: 0 0 0 1 0 0 0 0 PCI-MSI-edge eth1
59: 4388 4368 4462 4469 4449 4370 4394 4409 PCI-MSI-edge eth1-TxRx-0
60: 4434 4353 4377 4393 4449 4457 4355 4374 PCI-MSI-edge eth1-TxRx-1
61: 4568 4573 4481 4502 4507 4513 4465 4560 PCI-MSI-edge eth1-TxRx-2
62: 4377 4393 4352 4434 4356 4374 4457 4449 PCI-MSI-edge eth1-TxRx-3
63: 4354 4379 4456 4449 4353 4430 4393 4378 PCI-MSI-edge eth1-TxRx-4
64: 4354 4430 4395 4378 4456 4450 4379 4355 PCI-MSI-edge eth1-TxRx-5
65: 2062948 2066143 2076223 2075504 2049662 2053214 2060639 2057563 PCI-MSI-edge eth1-TxRx-6
66: 4384 4396 4445 4351 4363 4350 4439 4464 PCI-MSI-edge eth1-TxRx-7
Все пакеты обрабатываются одной очередью eth1-TxRx-6 но равномерно размазываются по всем ядрам. Какой смысл тогда в таком количестве очередей или както по особенному грузить модуль сетевой карты? Или это глюки?
Во время тестов в одну сторону 465k PPS на интерфейсе появились overruns:1002943
[root@testrouter ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 90:E2:BA:06:FF:50
inet6 addr: fe80::92e2:baff:fe06:ff50/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:332723284 errors:0 dropped:0 overruns:1002943 frame:0
TX packets:1306 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:80117618310 (74.6 GiB) TX bytes:429633 (419.5 KiB)
Memory:d8520000-d8540000
[root@testrouter ~]#
[root@testrouter ~]# ethtool -S eth0 | grep rx_queue_6
rx_queue_6_packets: 332723161
rx_queue_6_bytes: 80117611254
rx_queue_6_drops: 1002943 совпадает с overruns:1002943
rx_queue_6_csum_err: 0
rx_queue_6_alloc_failed: 0
[root@testrouter ~]#
[root@testrouter ~]# ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 256
[root@testrouter ~]#
[root@testrouter ~]# ethtool -c eth0
Coalesce parameters for eth0:
Adaptive RX: off TX: off
stats-block-usecs: 0
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0
rx-usecs: 3
rx-frames: 0
rx-usecs-irq: 0
rx-frames-irq: 0
tx-usecs: 0
tx-frames: 0
tx-usecs-irq: 0
tx-frames-irq: 0
rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0
rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0
Нагрузка ядер по top во время тестов показывала нагрузку на SI 0,3-0,7% процы были совсем не нагружены.
При нагрузке в 300к PPS на каждое ядро высыпалось по 700-800 прерываний в секунду т.е. 6000 (Но мог и ошибиться, по доке драйвер по умолчанию генерит 8000) прерываний при 300к PPS.
Чем лечить?
-
а кто чем мониторит/собирает статистику на бордере?
-
Опубликовано · Изменено пользователем QWE · Жалоба на ответ
Делаете по 8 комбо очередей
так ?
eth0-txrx-0 cpu0-0
eth0-txrx-1 cpu0-1
eth0-txrx-2 cpu0-2
eth0-txrx-3 cpu0-3
eth0-txrx-4 cpu1-0
eth0-txrx-5 cpu1-1
eth0-txrx-6 cpu1-2
eth0-txrx-7 cpu1-3
eth1-txrx-0 cpu0-0
eth1-txrx-1 cpu0-1
eth1-txrx-2 cpu0-2
eth1-txrx-3 cpu0-3
eth1-txrx-4 cpu1-0
eth1-txrx-5 cpu1-1
eth1-txrx-6 cpu1-2
eth1-txrx-7 cpu1-3
а вместо Zebra bird установить можно на LEAF?
-
Опубликовано · Изменено пользователем QWE · Жалоба на ответ
собрал сервер на http://www.supermicro.com/products/motherboard/Xeon1333/5000P/X7DBR-8.cfm + Intel EXPI9402PT (на шине PCIe) чип Intel 82576, решаемые задачи BGP fv + ipt_netflow + будут VLANы
планирую поставить CentOS6.2 (2.6.32) x86_64 + ipt_netflow под эту систему (на наг есть ссылка на репозиторий) + igb последний драйвер 3.4.7
1. Насколько лучше с точки зрения производительности системы (маршрутизация, прерывания CPU), остаться на этой версии ядра или обновить его то до какой? Или перейти на другой дистр linux если лучше менять версию ядра?
2. Насколько будет эффективнее поднять bonding (eth0+eth1) с точки зрения раходования прерываний CPU и маршрутизации? Есть ли в нем необходимость?
3. В системе 8 ядер, как лучше распределить прерывания и сколько сделать очередей RX,TX от каждого интерфейса?
-
подскажите подходящий дистр Linux для работы модуля ipt_netflow
судя из описания ipt_netflow максимальная версия ядра может быть 2.6.37
2011-01-25 ABC
* ipt_NETFLOW.c: compile compatibility with 2.6.37 (ipt_*)
* ipt_NETFLOW.c: compile compatibility with 2.6.36.3 (NIPQUAD)
CentOS6.2 на сервер не ставиться (
-
Ваш вопрос изначально не имеет ответа, потому что не понятно что вы собираетесь на нем роутить. И вообще, только роутить ли.
Сервер будет только роутить - BIRD c FV + ipt_netflow
-
Хочу собрать бордер на БУ железке HP Proliant DL360G5 2 х Quad-Core Intel® Xeon® Processor E5320 (1.86 GHz 80 Watts, 1066 FSB) или HP ProLiant DL365 G5 2x Quad Core AMD 2.3GHz
Встроенная сетевуха - 2 многофункциональных 1-портовых 1 Gb/s HP NC373i (на базе Broadcom 5708S) c поддержкой iSCSI Boot & Acceleration, TCP Offload Engine и RDMA
На сайте broadcom http://www.broadcom.com/collateral/pb/5708S-PB08-R.pdf
Performance-focused – optimized for throughput and CPU utilization
• Adaptive interrupts
• 2.5 Gigabit Ethernet
• RSS reduces CPU utilization on multi-CPU systems.
• MSI allows interrupt distribution in a multi-CPU host system.
• PCI Express host interface allows a low-latency access to CPU and memory resources.
В случае проблем с сетевой картой доустановить сетевуху Intel EXPI9402PT (на шине PCIe) чип Intel 82576 которая умеет:
Intel® I/O Acceleration Technology (Intel® QuickData Technology, MSI-X, RSS, Direct Cache Access, checksum and segmentation offload, header splitting/replication, low latency interrupts), 16Rx/16Tx queues/port, jumbo frames, Intel® VT for Connectivity (Virtual Machine Device Queues (VMDq), Virtual Machine Direct Connect (VMDc - PCI-SIG SR-IOV based), Security (IPsec offload, LinkSec3), IEEE 1588 (time stamp)
До какого значения pps и Мбит/с хватит такого сервера? Не уткнется эта платформа в частоту работы памяти (DDR2-667/533) ? Проц вроде на шине 1066
Если у кого есть опыт сборки бордера на БУ железе буду благодарен за советы/рекомендации/мнения.
PS
Может несовсем по теме, но в этой ветке очень интересно.
-
Задача такая.
Необходимо максимально эффективно распределять полосу пропускания скажем 10 мбит/с между 20 пользователями.
Например если 10 пользователей в данный момент не используют интернет то недоиспользованная ими полоса распределяется между остальными. Если все одинаково интенсивно используют интернет то всем гарантировано поровну. По сути нужен динамический шейпер как в циско только чтобы он мог перераспределять недозагруз одних другим.
Есть ли подобное оборудование или софт в природе?
Вашу проблему решает без проблем Cisco Sce 2020. Но железка за 10 000$ дороговата для 20 пользователей.
Приобрел по рекомендации микротик 750 за 1700р. Пока на ней тренируюсь.
-
Думаю что такой алгоритм будет дергать абонентов
и каким образом будет выглядеть дерганье абонентов?
фичи HTB используют "перестраивание" шейпера практически в реале и работают на уровне ядра. В принципе и скриптом можно часто дергать. да и вряд ли заметишь перестраивание если лазишь по сайтам.
Теоретизированное размышление снимается.
-
Ну поставьте систему мониторинга, сделайте тригеры на загрузку канала и портов, распишите, проверяйте канал к примеру раз в пару минут и динамически меняйте скорость по всем класам, в чем проблема то?
писюк с zabbix на борту решает задачу как 2 пальца.
ну скриптец сверху который дергает tc
Думаю что такой алгоритм будет дергать абонентов, точнее вот такое не плавное перестраивание не желательно. То что будет перестраиваться это согласен.
-
если у абонента нет трафика то на кой куй ему его зажимать? вы себя послушайте, что вы пишите...
Написано было не так а вот так
т.е. полностью до нуля зажимать абонентов ... нельзя, иначе невозможно будет определить это.
-
Опубликовано · Изменено пользователем QWE · Жалоба на ответ
Поставьте роутер за 900 рублей и посмотрите как он будет работать, а работать он будет именно так, как вы и написали в своём САМОМ ПЕРВОМ посте.
Не, один юзер с торентом убъет весь канал. Конкурировать с ним будут другие клиенты с торентами.
Задача абсолютно справедливости не решаема в принципе.
Помимо того, что мир, в целом, несправедлив, определите, как вы будете считать, сколько клиентов online, кому гарантировать полосу, а кому нет?
Но, какое-то подобие можно сделать, настроив на интерфейсе иерархический QoS и каждому пользователю гарантированую полосу.
В этом случае, если есть сводобное место в полосе - трафика идет сколько требуется. Как образуется очередь - согласно настроенной полосе.
Никто не собирается менять мир.
Торренты,вирусы - вот это все и опасно если ничего не настроить.
Чтобы определить клиент online или нет - просто, присутствует исходящий+входящий трафик. т.е. полностью до нуля зажимать абонентов (на исход в принципе не планировалось зажимать) нельзя иначе невозможно будет определить это. Гарантировать полосу нужно всем во время перегрузки. К примеру 10 Мбит/с между 20 абонентов - не ниже 512Кбит/с.
А вот про это "Но, какое-то подобие можно сделать, настроив на интерфейсе иерархический QoS и каждому пользователю гарантированую полосу.
В этом случае, если есть сводобное место в полосе - трафика идет сколько требуется. Как образуется очередь - согласно настроенной полосе." можно поподробнее ?
-
Один шеёпер на 10 мегабит нужен и больше ничего. И будут это 10 мегабит делиться между всеми.
как вы задачу ставите так вам её и помогают решать.
Хорошо.
Скорость 10Мбит - внешнего канала (внешний интерфейс)
20 Абонентов - 20 Шейперов (шейпер - условное название алгоритма ограничения) на внутреннем интерфейсе.
Есть ли некий объединяющий алгоритм работы группы шейперов для динамического изменения их параметров в зависимости от текущей загрузки внешнего интерфейса.
Допустим 18 абонентов не используют интернет 5 мбит (или больше) можно отдать двум абонентам. Если появляется необходимость в интернете у тех кто не пользовал, то происходит опять перераспределение и т.д.
-
Например если 10 пользователей в данный момент не используют интернет то недоиспользованная ими полоса распределяется между остальными. Если все одинаково интенсивно используют интернет то всем гарантировано поровну.
И
в режиме недозагруза полосы пропускания внешнего интернет канала изменять настройки шейперов
Разные вещи.
То что написано в первой моей цитате происходит автоматически без дополнительных фич.
Вот именно. Это разные вещи для разных ситуаций. Можно руками мониторить утилизацию внешнего интерфейса и менять настройки шейпера для того и другого случая, а хотелось бы автоматически.
-
Он уже умеет форвардить и натить
Это к поставленному вопросу не имеет никакого отношения. динамический шейпер/полисер - вот суть вопроса.
Есть ли железки которые могут в режиме недозагруза полосы пропускания внешнего интернет канала изменять настройки шейперов?
-
Есть. любой маршрутизатор.
У меня на столе лежит Cisco 2651XM. Не умеет.
-
Задача такая.
Необходимо максимально эффективно распределять полосу пропускания скажем 10 мбит/с между 20 пользователями.
Например если 10 пользователей в данный момент не используют интернет то недоиспользованная ими полоса распределяется между остальными. Если все одинаково интенсивно используют интернет то всем гарантировано поровну. По сути нужен динамический шейпер как в циско только чтобы он мог перераспределять недозагруз одних другим.
Есть ли подобное оборудование или софт в природе?
Linux softrouter
в Программное обеспечение, биллинг и *unix системы
Опубликовано · Изменено пользователем QWE · Жалоба на ответ
ок, установил модуль
[root@testrouter src]# modinfo igb | grep -E "version|parm"
version: 3.4.7
srcversion: 84D0F70C7DF9FC65710D5E8
vermagic: 2.6.32-220.7.1.el6.alex.rps.2.x86_64 SMP mod_unload modversions
parm: InterruptThrottleRate:Maximum interrupts per second, per vector, (max 100000), default 3=adaptive (array of int)
parm: IntMode:Change Interrupt Mode (0=Legacy, 1=MSI, 2=MSI-X), default 2 (array of int)
parm: Node:set the starting node to allocate memory on, default -1 (array of int)
parm: LLIPort:Low Latency Interrupt TCP Port (0-65535), default 0=off (array of int)
parm: LLIPush:Low Latency Interrupt on TCP Push flag (0,1), default 0=off (array of int)
parm: LLISize:Low Latency Interrupt on Packet Size (0-1500), default 0=off (array of int)
parm: RSS:Number of Receive-Side Scaling Descriptor Queues (0-8), default 1=number of cpus (array of int)
parm: VMDQ:Number of Virtual Machine Device Queues: 0-1 = disable, 2-8 enable, default 0 (array of int)
parm: max_vfs:Number of Virtual Functions: 0 = disable, 1-7 enable, default 0 (array of int)
parm: MDD:Malicious Driver Detection (0/1), default 1 = enabled. Only available when max_vfs is greater than 0 (array of int)
parm: QueuePairs:Enable TX/RX queue pairs for interrupt handling (0,1), default 1=on (array of int)
parm: EEE:Enable/disable on parts that support the feature (array of int)
parm: DMAC:Disable or set latency for DMA Coalescing ((0=off, 1000-10000(msec), 250, 500 (usec)) (array of int)
parm: LRO:Large Receive Offload (0,1), default 0=off (array of int)
parm: debug:Debug level (0=none, ..., 16=all) (int)
[root@testrouter src]#
гружу с одним параметром
modprobe igb RSS=8,8
сдвоенных очередей на каждый интерфейс получилось по 8
overruns ошибки исчезли.
Проблема с тем что драйвер разгребает пакеты одной очередью остается
тестирую программой iperf
сервер клиент включен в интерфейс eth0 тестируемого сервера
iperf -c 192.168.20.1 -i 5 --format k -u -l64 -b6200k -p 5002 -P 40 -t 1800
сервер - сервер включен в интерфейс eth1 тестируемого сервера
iperf -B 192.168.20.1 -u -s -i5 -p 5002
при этом на eth0 тестируемого сервера влетает 483к пакетов в секунду
далее идут непонятные мне цифры
очередь (через которую пакеты прилетают) eth0-TxRx-6 генерит на каждое ядро 130/1с прерываний, а очередь (через которую пакеты улетают) eth1-TxRx-3 2200/1с на каждое ядро. На отправку прерываний больше почему то чем на прием!!!
top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13 root 20 0 0 0 0 R 12.3 0.0 3:49.33 ksoftirqd/2
21 root 20 0 0 0 0 S 3.7 0.0 0:43.14 ksoftirqd/4
25 root 20 0 0 0 0 S 3.7 0.0 1:15.39 ksoftirqd/5
29 root 20 0 0 0 0 S 3.3 0.0 1:26.70 ksoftirqd/6
33 root 20 0 0 0 0 S 3.0 0.0 0:57.72 ksoftirqd/7
17 root 20 0 0 0 0 S 2.7 0.0 2:37.13 ksoftirqd/3
9 root 20 0 0 0 0 S 1.7 0.0 1:13.25 ksoftirqd/1
4 root 20 0 0 0 0 S 0.3 0.0 0:53.82 ksoftirqd/0
стоит увеличить полосу с -b6200k до -b6500k как в топе залипает 100% загрузка одного ядра, т.е. 483к PPS предел для 8 ядерной системы с супер интеловыми сетевухами ((( это с модулем ipt_NETFLOW но без FV
единственный положительный момент как уже писал - на интерфейсах отсутствуют какие либо ошибки
че делать то?
и еще заметил в отчете iperf много вот таких пакетов 49011 datagrams received out-of-order
[ 31] Server Report:
[ 31] 0.0-1344.0 sec 1012975 KBytes 6174 Kbits/sec 0.062 ms 96974/16304569 (0.59%)
[ 31] 0.0-1344.0 sec 49011 datagrams received out-of-order
выгрузил ipt_NETFLOW система стала прокачивать 575к PPS количество прерываний не увеличилось где то 20000/сек
если добавить еще пакетов опять вылезает ksoftirqd
perf top
701.00 6.8% _spin_lock /usr/lib/debug/lib/modules/2.6.32-220.7.1.el6.alex.rps.2.x86_64/vmlinux
605.00 5.9% __alloc_skb /usr/lib/debug/lib/modules/2.6.32-220.7.1.el6.alex.rps.2.x86_64/vmlinux
568.00 5.5% igb_poll /lib/modules/2.6.32-220.7.1.el6.alex.rps.2.x86_64/kernel/drivers/net/igb/igb.ko
529.00 5.1% igb_xmit_frame_ring /lib/modules/2.6.32-220.7.1.el6.alex.rps.2.x86_64/kernel/drivers/net/igb/igb.ko
417.00 4.0% igb_tx_ctxtdesc /lib/modules/2.6.32-220.7.1.el6.alex.rps.2.x86_64/kernel/drivers/net/igb/igb.ko
342.00 3.3% ipt_do_table /lib/modules/2.6.32-220.7.1.el6.alex.rps.2.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko
и при 575к PPS как то стали только 4 ядра процессоров выделяться по загрузке