пятница, 31 мая 2013 г.

Многопоточный pktgen

Хороший способ протестировать пропускную способность сети -- pktgen. Это модуль ядра Linux, генерирующий пакеты и стреляющий ими в указанный сетевой интерфейс. Но бывает так, что одно ядро процессора не способно забить всю полосу сетевой карты (при использовании, например 10G сетей). Тогда можно подключить второе ядро. Скрипт понятен без комментариев:
#!/bin/bash
echo "rem_device_all" > /proc/net/pktgen/kpktgend_0 
echo "rem_device_all" > /proc/net/pktgen/kpktgend_1
echo "add_device eth1@0" > /proc/net/pktgen/kpktgend_0 
echo "add_device eth1@1" > /proc/net/pktgen/kpktgend_1 
echo "pkt_size 1500" > /proc/net/pktgen/eth1\@0
echo "pkt_size 1500" > /proc/net/pktgen/eth1\@1
echo "count 1000000000" > /proc/net/pktgen/eth1\@0
echo "count 1000000000" > /proc/net/pktgen/eth1\@1
echo "dst_mac 05:05:05:05:05:05" > /proc/net/pktgen/eth1\@0
echo "dst_mac 05:05:05:05:05:05" > /proc/net/pktgen/eth1\@1
echo "start" > /proc/net/pktgen/pgctrl