Ага, нам часто задают вопрос — почему Altera, а не Xilinx (это производители FPGA). И ответ получается именно «сложилось исторически», потому что много лет назад одного из нас этому научили в институте и так оно и по сей день.
В принипе, ничего плохого действительно нет, но задуматься заставляет.
У MX в данной прошивке два порта 10G работают на вход, и два порта 1G на выход. Закладывать гибкую коммутацию в него не стали, так как сожрёт ресурсы ПЛИС.
Вообще, поскольку прошивка в наших руках, могли сварганить любую комбинацию, в том числе и 1Г-1Г, но в этом случае
мы бы тестировали уже другую прошивку, а не ту, которая уходит в production.
отличное решение… нам почему-то в голову не пришло, хотя 10-гигабитных коммутаторов — хоть отбавляй.
Но уж очень хотелось поковыряться с intel'овской карточкой :)
Насколько я понял из документации, tc привязывается к системному HZ, на нашей машинке это 250. То есть квант времени для tc —
это 4 миллисекунды. То есть, если мы хотим посылать больше 250 пакетов в секунду, пакеты будут посылаться пачками.
Например, если мы хотим ограничить выходной поток 100 Мбит/c и размер пакета у нас 1000 байт (= 8000 бит), то 250 раз в секунду будет послана пачка из 50 пакетов (100e6/8e3/HZ).
Получается, что от burst'ов мы средствами tc не избавимся.
Протестировали на описанной схеме: фиксируем overflow pkt.
btw, не написал в статье, как работает Transmit Rate Limiting, сейчас дополню
А 4й — это боль… Сам пару раз натыкался на такие ТЗ, что хотелось плакать. Правда, к счастью, не пришлось по ним работать.
А ТЗ и макет, видимо, потому будут.
В принипе, ничего плохого действительно нет, но задуматься заставляет.
tc qdisc add dev eth4 root tbf rate 500mbit burst 2000 latency 1us
мне кажется, что в ней чего-то не хватает, если честно.
буду разбираться дальше.
Вообще, поскольку прошивка в наших руках, могли сварганить любую комбинацию, в том числе и 1Г-1Г, но в этом случае
мы бы тестировали уже другую прошивку, а не ту, которая уходит в production.
Но уж очень хотелось поковыряться с intel'овской карточкой :)
я не нашёл этого в документации…
это 4 миллисекунды. То есть, если мы хотим посылать больше 250 пакетов в секунду, пакеты будут посылаться пачками.
Например, если мы хотим ограничить выходной поток 100 Мбит/c и размер пакета у нас 1000 байт (= 8000 бит), то 250 раз в секунду будет послана пачка из 50 пакетов (100e6/8e3/HZ).
Получается, что от burst'ов мы средствами tc не избавимся.
Протестировали на описанной схеме: фиксируем overflow pkt.
btw, не написал в статье, как работает Transmit Rate Limiting, сейчас дополню
10G — в массы!
миниатюра — супер :)