dperf — это высокопроизводительный тестер нагрузки на сеть с открытым исходным кодом на базе DPDK. Его можно использовать для тестирования производительности сетевого интерфейса в облаке. В этой статье я использую dperf для тестирования производительности сетевого интерфейса в облаке google.
Среда тестирования
тестовая среда | Деталь |
---|---|
Клиент | c2-standard-4,4c16g |
Сервер | c2-standard-4, 4c16g |
Версия DPDK | 19.11.2 |
dperf | последняя версия |
Протокол | UDP |
ОС | CentOS 7.9 |
Интерфейс | virtio |
Топология сети
Результаты тестирования
Количество CPU и очередей | Использование ЦП (%) | RX PPS | TX PPS |
---|---|---|---|
1 | 96 | 1,900,000 | 1,900,000 |
2 | 77 | 3,000,000 | 3,000,000 |
1 ЦП/квота
2 CPU/Queue
dperf configure
client.conf
mode client
protocol udp
tx_burst 128
lport_range 1000 65535
rss auto mq_rx_none
payload_size 64
keepalive 10ms
cc 30000
cps 2000
cpu 0 1
duration 10d
#port pci addr gateway
port 0000:00:05.0 192.168.4.3 192.168.4.2 42:01:c0:a8:04:02
# addr_start num
client 192.168.4.3 1
# addr_start num
server 192.168.4.2 1
# port_start num
listen 80 2
В Google Cloud, некоторые UDP порты зарезервированы, мы должны использовать ‘lport_range’, чтобы пропустить эти порты.
server.conf
mode server
protocol udp
tx_burst 128
rss auto
payload_size 64
keepalive 1s
cpu 0 1
duration 10d
#port pci addr gateway
port 0000:00:05.0 192.168.4.2 192.168.4.3 42:01:c0:a8:04:03
# addr_start num
client 192.168.4.3 1
# addr_start num
server 192.168.4.2 1
# port_start num
listen 80 2
Заключение
Сетевая производительность Google Cloud Compute Engine очень хороша. Мы можем иметь 1,9 Mpps одной единственной очередью. В документации Google Cloud говорится, что gvirtio работает лучше. Но он пока не поддерживает DPDK. Я с нетерпением жду возможности протестировать производительность gvirtio с помощью dperf.