Перейти к содержимому
Калькуляторы

Можно ли выжать из BCM5721 больше 100kpps?

Имеется сервер с двумя встроенными сетевыми картами Broadcom BCM5721 PCI-Express.

На приблизительно 600mbps и 100kpps возник следующий эффект:

при небольшом увеличении нагрузки пинг скачком увеличивается с 1-2 до 10мс и появляются потери 1-5%.

Ядра процессора при этом заняты не полностью, процессорная нагрузка растёт плавно, пропорционально mbps/kpps.

 

Есть подозрение, что это потолок для сетевых карт.

iperf с параметрами по умолчанию между двумя одинаковыми соседними серверами

показал 450-480 mbps (+60mbps рабочего трафика).

 

Какие ручки крутил (FreeBSD-7.1):

1) coalescing patch для if_bge: http://forum.nag.ru/forum/index.php?showtopic=53447

2) /boot/loader.conf:

- kern.hz=2000 и 4000

- hw.bge.rxd=512

3) /etc/sysctl.conf:

net.inet.ip.dummynet.io_fast=1
net.inet.ip.fastforwarding=0
net.inet.ip.fw.dyn_buckets=2048
net.inet.ip.dummynet.hash_size=2048

dev.bge.0.rx_coal_ticks=500
dev.bge.0.tx_coal_ticks=10000
dev.bge.0.rx_max_coal_bds=64
dev.bge.0.tx_max_coal_bds=128
dev.bge.0.program_coal=1

dev.bge.1.rx_coal_ticks=500
dev.bge.1.tx_coal_ticks=10000
dev.bge.1.rx_max_coal_bds=64
dev.bge.1.tx_max_coal_bds=128
dev.bge.1.program_coal=1

 

Статистика:

# sysctl net.inet.ip | grep intr_
net.inet.ip.intr_queue_maxlen: 50
net.inet.ip.intr_queue_drops: 0

# sysctl net.isr
net.isr.swi_count: 22302955
net.isr.drop: 0
net.isr.queued: 3040
net.isr.deferred: 0
net.isr.directed: -1524784307
net.isr.count: -1533290500
net.isr.direct: 1

# vmstat -i
interrupt                          total       rate
irq1: atkbd0                         198          0
irq14: ata0                           58          0
irq19: uhci1+                     276092          1
cpu0: timer                    721129049       4032
irq256: bge0                   335093609       1873
irq257: bge1                   342699102       1916
cpu1: timer                    721129198       4032
Total                         2120327306      11856

vmstat -z | grep -v ' 0$' выдаёт пустой список.

 

Вопрос: можно ли выжать из данной аппаратной конфигурации больше?

Поможет ли увеличение hw.bge.rxd? обновление системы до 8.1?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновил FreeBSD 7.1 до 8.2.

iperf показал 916 Mbits/sec.

На соседней машинке с 7.1+bge coalescing patch - всего 619 Mbits/sec.

На первой до обновления результат был похожим.

Единственное отличие между машинками - на первой cpu e8500, на второй e7300.

 

UPD. Видимо, виновато обновление драйвера bge между 7.x и 8.x.

В Линуксе смена ядра с 2.6.27 на 2.6.32 на шлюзе с broadcom'ами

привела к снижению процессорной нагрузки вдвое.

Но там драйвер tg3 написан broadcom'ом и использует закрытую фирмварь.

А во FreeBSD осталось непонятным и ограничение в 600mbps, и его исчезновение,

и сопоставимая с Линуксом производительность без фирмвари.

Изменено пользователем Ilya Evseev

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.