Dperf is a 10M HTTP CPS Load Tester.

Overview

Dperf is a 10M HTTP CPS Load Tester Apache V2 License

Dperf is a high performance network load tester. Thanks to DPDK and highly optimized network protocol stack, it can generate huge traffic with a single x86 server: tens of millions of HTTP CPS,hundreds of Gbps throughput and billions of connections. At the same time, it can accurately capture and display any packet loss in real time, which is very helpful for you to find defects in the performance and stability of your device. Dperf is suitable for the L4 gateways (such as L4LB), and can also be used to evaluate the packet processing capacity of the CPU.

Performance

HTTP Connections per Second

Client Cores Server Cores HTTP CPS
1 1 2,101,044
2 2 4,000,423
4 4 7,010,743
6 6 10,027,172

HTTP Throughput per Second

Client Cores Server Cores RX(Gbps) TX(Gbps)) Client CPU Usage(%) Server CPU Usage(%)
1 1 18 18 60 59
2 2 35 35 60 59
4 4 46 46 43 43

HTTP Current Connections

Client Cores Server Cores Current Connections Client CPU Usage(%) Server CPU Usage(%)
1 1 100,000,000 34 39
2 1 200,000,000 36 39
4 4 400,000,000 40 41

Client & Server Configuration

  • MEM: 512GB(hugepage 100GB)
  • NIC: Mellanox MT27710 25Gbps * 2
  • Kernel: 4.19.90

Getting Started

#set hugepages
#edit '/boot/grub2/grub.cfg' like this, and reboot the OS
#linux16 /vmlinuz-... nopku transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=8

#download & build dpdk
#download and unpack dpdk
TARGET=x86_64-native-linuxapp-gcc
#TARGET=arm64-armv8a-linuxapp-gcc
cd /root/dpdk/dpdk-stable-19.11.10
make install T=$TARGET -j16

#build dperf
cd dperf
make -j8 RTE_SDK=/root/dpdk/dpdk-stable-19.11.10 RTE_TARGET=$TARGET

#bind NIC
modprobe uio
insmod /root/dpdk/dpdk-stable-19.11.10/$TARGET/kmod/igb_uio.ko

#Suppose your PCI number is 0000:1b:00.0
/root/dpdk/dpdk-stable-19.11.10/usertools/dpdk-devbind.py -b igb_uio 0000:1b:00.0

#run dperf server
#dperf server bind at 6.6.241.27:80,  gateway is 6.6.241.1
./build/dperf -c test/http/server-cps.conf

#send request to dperf server at client
curl http://6.6.241.27/

Running the tests

Test HTTP CPS as shown below.

#run server at some host
./build/dperf -c test/http/server-cps.conf

#run client at another host
./build/dperf -c test/http/client-cps.conf

Contributing

Dperf welcomes your contribution.

Authors

License

Dperf is distributed under the Apache License, Version 2.0.

Comments
  • [help] ./build/dperf -c test/http/server-cps.conf 启动报错

    [help] ./build/dperf -c test/http/server-cps.conf 启动报错

    [[email protected] dperf-main]# ./build/dperf -c test/http/server-cps.conf EAL: Detected 4 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'PA' EAL: Probing VFIO support... port init fail dpdk init fail

    opened by Sachi14 36
  • 如何在不调高cc并发值的情况下测试吞吐率?

    如何在不调高cc并发值的情况下测试吞吐率?

    我正在测试一条TCP隧道的吞吐率性能。 看了相关的文章和配置模板,大致就是调高CC,调小keepalive(比如1ms) 目前遇到的情况是,CC并发值过高会增加DUT的CPU的负担,反而达不到预期的性能;CC如果调小,dperf无法将带宽压满。而keepalive似乎最小只能是1ms,不能更小了。 请问有什么方法,在不增加CC的情况下,测试吞吐率?

    opened by jiawen94 34
  • dperf启动失败,求帮助

    dperf启动失败,求帮助

    hello,我想用dperf来测试一下dpvs的cps性能,安装完成后启动server失败 ./build/dperf -c test/http/server-cps.conf EAL: Detected 64 lcore(s) EAL: Detected 2 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'VA' EAL: Probing VFIO support... EAL: VFIO support initialized port init fail dpdk init fail

    大页内存已配置: cat /proc/meminfo | grep Huge AnonHugePages: 77824 kB ShmemHugePages: 0 kB FileHugePages: 0 kB HugePages_Total: 49 HugePages_Free: 48 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 1048576 kB

    网卡: mlx cx4

    dpdk版本: 19.11.10

    内核版本: 5.4

    opened by sheva7777 32
  • dperf报错

    dperf报错

    dpdk19.11

    采用的网卡信息为0000:af:00.1 'MT27800 Family [ConnectX-5] 1017' if=ens1f1np1 drv=mlx5_core unused=vfio-pci Active server.conf文件为 mode server cpu 0 duration 10m port 0000:af:00.0 192.168.1.4 192.168.1.6 client 192.168.1.6 1 server 192.168.1.4 1 listen 80 1 huge配置如下 image 出现报错 EAL: Detected 64 lcore(s) EAL: Detected 2 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'VA' EAL: 42 hugepages of size 1073741824 reserved, but no mounted hugetlbfs found for that size EAL: Probing VFIO support... EAL: VFIO support initialized EAL: PCI device 0000:af:00.0 on NUMA socket 1 EAL: probe driver: 15b3:1017 net_mlx5 net_mlx5: DV flow is not supported

    port start error: Cannot allocate memory start port fail dpdk init fail

    可以请教下是什么问题吗

    opened by thunderZH963 22
  • 客户端连不上服务端

    客户端连不上服务端

    服务启动信息如下: [[email protected] dperf-main]# ./build/dperf -c test/http/server-cps.conf EAL: Detected 2 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'PA' EAL: No available hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: PCI device 0000:00:14.0 on NUMA socket -1 EAL: probe driver: 8086:100e net_e1000_em socket allocation succeeded, size 0.01GB num 131070 Get gateway's MAC address successfully

    seconds 0 cpuUsage 0 pktRx 0 pktTx 0 bitsRx 0 bitsTx 0 dropTx 0 arpRx 0 arpTx 0 icmpRx 0 icmpTx 0 otherRx 0 badRx 0 synRx 0 synTx 0 finRx 0 finTx 0 rstRx 0 rstTx 0 synRt 0 finRt 0 ackRt 0 pushRt 0 tcpDrop 0 skOpen 0 skClose 0 skCon 0 skErr 0 httpGet 0 http2XX 0 httpErr 0 ierrors 0 oerrors 0 imissed 0

    获取网关地址: 16:55:23.121987 ARP, Request who-has 6.6.241.1 tell 6.6.241.11, length 46 16:55:23.121989 ARP, Request who-has 6.6.241.1 tell 6.6.241.11, length 46 16:55:23.121990 ARP, Reply 6.6.241.1 is-at 66:fe:68:7e:19:25, length 46 16:55:23.121992 ARP, Reply 6.6.241.1 is-at 66:fe:68:7e:19:25, length 46

    请求 http://6.6.241.11 连接超时,客户端使用连接不上服务

    使用版本如下: dpdk-stable-19.11.11 dperf-main 最新代码

    感谢!!!@pengjianzhang

    opened by Hosers 22
  • [help] Fix a bug on intel X710

    [help] Fix a bug on intel X710

    我的client配置:

    mode                        client
    tx_burst                    128
    launch_num                  10
    cpu                         2 4 6 8
    
    payload_size                341
    duration                    2m
    
    cps                         1000000
    cc                          1000000
    keepalive_request_interval  1ms
    
    #port                       pci             addr      gateway    [mac]
    port                        0000:19:00.0    192.168.100.62  192.168.100.63  70:c7:f2:de:b3:34
    
    #                           addr_start      num
    client                      192.168.100.1    50
    
    #                           addr_start      num
    server                      192.168.100.63    4
    #                           port_start      num
    listen                      80              32
    

    server配置:

    #daemon
    mode            server
    tx_burst        128
    cpu             2 4 6 8
    
    duration        2m
    payload_size    341
    keepalive       1
    
    port            0000:1a:00.0    192.168.100.63    192.168.100.62  e4:43:4b:5c:e5:10
    
    #               addr_start      num
    client          192.168.100.1    50
    
    #               addr_start      num
    server          192.168.100.63   4
    
    #               port_start      num
    listen          80              32
    

    测试结果: server显示:

    seconds 86                 cpuUsage 98  0   0   0   
    pktRx   7,074,688          pktTx    7,074,682          bitsRx   3,395,861,856      bitsTx  3,056,262,624      dropTx  0         
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                  otherRx 1          badRx 0         
    synRx   0                  synTx    0                  finRx    0                  finTx   0                  rstRx   0          rstTx 7,074,682 
    synRt   0                  finRt    0                  ackRt    0                  pushRt  0                  tcpDrop 0                 
    skOpen  0                  skClose  0                  skCon    250,190            skErr   0                 
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  20,097,229 
    

    client端显示:

    seconds 74                 cpuUsage 89  1   1   1   
    pktRx   7,086,922          pktTx    7,424,515          bitsRx   3,401,732,328      bitsTx  3,218,193,680      dropTx  0         
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                  otherRx 2          badRx 0         
    synRx   0                  synTx    337,600            finRx    0                  finTx   0                  rstRx   0          rstTx 7,086,915 
    synRt   337,600            finRt    0                  ackRt    0                  pushRt  0                  tcpDrop 0                 
    skOpen  0                  skClose  92,040             skCon    907,960            skErr   92,040            
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  409,862 
    

    cpu利用率很不均匀,带宽也不够。

    opened by yfming 22
  • 你好,dperf客户端服务端配置总是不对,发现打印的信息不对应。

    你好,dperf客户端服务端配置总是不对,发现打印的信息不对应。

    dperf log

    两台主机网卡为25G,配置了DPDK21.11.2、大页内存为1024,两台主机通过交换机连接。

    client-cps.conf

    mode            client
    cpu             1
    duration        10s
    cps             10k
    port            0000:02:00.0      192.168.8.110   192.168.8.1    10:70:FD:88:5D:9E
    client          192.168.8.110     2
    server          192.168.8.120     1
    listen          1                 100
    tx_burst        64
    launch_num      20
    
    

    server_cps.conf

    mode        server
    cpu         3
    duration    10m
    port        0000:01:00.0    192.168.8.120   192.168.8.1   10:70:FD:88:51:50
    client      192.168.8.110       2
    server      192.168.8.120       1
    listen      1                   100
    
    
    [email protected]:/home/test/demo/f-stack/app/dperf# ./build/dperf -c ./test/http/client-cps.conf 
    EAL: Detected CPU lcores: 16
    EAL: Detected NUMA nodes: 1
    EAL: Detected shared linkage of DPDK
    EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
    EAL: Selected IOVA mode 'PA'
    EAL: No available 1048576 kB hugepages reported
    EAL: VFIO support initialized
    EAL: Probe PCI driver: mlx5_pci (15b3:a2d6) device: 0000:02:00.0 (socket 0)
    TELEMETRY: No legacy callbacks, legacy socket not created
    socket allocation succeeded, size 0.98GB num 13107000
    
    seconds 0                  cpuUsage 1   
    pktRx   3                  pktTx    3                  bitsRx   7,776              bitsTx  1,008              dropTx  0                 
    tcpRx   0                  tcpTx    0                  udpRx    3                  udpTx   0                 
    arpRx   0                  arpTx    3                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    0                  finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   0                  finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  3                 
    skOpen  0                  skClose  0                  skCon    0                  skErr   0                  rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 1                  cpuUsage 1   
    pktRx   0                  pktTx    0                  bitsRx   0                  bitsTx  0                  dropTx  0                 
    tcpRx   0                  tcpTx    0                  udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    0                  finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   0                  finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  0                  skClose  0                  skCon    0                  skErr   0                  rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 2                  cpuUsage 1   
    pktRx   0                  pktTx    20                 bitsRx   0                  bitsTx  9,920              dropTx  0                 
    tcpRx   0                  tcpTx    20                 udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    20                 finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   0                  finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  20                 skClose  0                  skCon    20                 skErr   0                  rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 3                  cpuUsage 1   
    pktRx   0                  pktTx    1,320              bitsRx   0                  bitsTx  654,720            dropTx  0                 
    tcpRx   0                  tcpTx    1,320              udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    1,320              finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   0                  finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  1,320              skClose  0                  skCon    1,340              skErr   0                  rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 4                  cpuUsage 1   
    pktRx   0                  pktTx    1,680              bitsRx   0                  bitsTx  833,280            dropTx  0                 
    tcpRx   0                  tcpTx    1,680              udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    1,680              finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   20                 finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  1,660              skClose  0                  skCon    3,000              skErr   0                  rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 5                  cpuUsage 1   
    pktRx   0                  pktTx    3,320              bitsRx   0                  bitsTx  1,646,720          dropTx  0                 
    tcpRx   0                  tcpTx    3,320              udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    3,320              finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   1,320              finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  2,000              skClose  0                  skCon    5,000              skErr   0                  rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 6                  cpuUsage 1   
    pktRx   0                  pktTx    4,000              bitsRx   0                  bitsTx  1,984,000          dropTx  0                 
    tcpRx   0                  tcpTx    4,000              udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    4,000              finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   1,680              finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  2,320              skClose  0                  skCon    7,320              skErr   0                  rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 7                  cpuUsage 1   
    pktRx   0                  pktTx    5,980              bitsRx   0                  bitsTx  2,966,080          dropTx  0                 
    tcpRx   0                  tcpTx    5,980              udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    5,980              finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   3,320              finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  2,660              skClose  0                  skCon    9,980              skErr   0                  rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 8                  cpuUsage 1   
    pktRx   0                  pktTx    7,000              bitsRx   0                  bitsTx  3,472,000          dropTx  0                 
    tcpRx   0                  tcpTx    7,000              udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    7,000              finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   4,000              finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  3,000              skClose  0                  skCon    12,980             skErr   0                  rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    ......
    
    seconds 38                 cpuUsage 1   
    pktRx   0                  pktTx    40,000             bitsRx   0                  bitsTx  19,840,000         dropTx  0                 
    tcpRx   0                  tcpTx    40,000             udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    40,000             finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   30,000             finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  10,000             skClose  10,000             skCon    80,000             skErr   10,000             rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 39                 cpuUsage 1   
    pktRx   0                  pktTx    40,000             bitsRx   0                  bitsTx  19,840,000         dropTx  0                 
    tcpRx   0                  tcpTx    40,000             udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    40,000             finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   30,000             finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  10,000             skClose  10,000             skCon    80,000             skErr   10,000             rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 40                 cpuUsage 1   
    pktRx   0                  pktTx    30,000             bitsRx   0                  bitsTx  14,880,000         dropTx  0                 
    tcpRx   0                  tcpTx    30,000             udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    30,000             finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   30,000             finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  0                  skClose  10,000             skCon    70,000             skErr   10,000             rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 41                 cpuUsage 1   
    pktRx   0                  pktTx    30,000             bitsRx   0                  bitsTx  14,880,000         dropTx  0                 
    tcpRx   0                  tcpTx    30,000             udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    30,000             finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   30,000             finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  0                  skClose  10,000             skCon    60,000             skErr   10,000             rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0                 
    
    
    seconds 42                 cpuUsage 1   
    pktRx   0                  pktTx    20,000             bitsRx   0                  bitsTx  9,920,000          dropTx  0                 
    tcpRx   0                  tcpTx    20,000             udpRx    0                  udpTx   0                 
    arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                 
    tosRx   0                  otherRx  0                  badRx    0                 
    synRx   0                  synTx    20,000             finRx    0                  finTx   0                  rstRx   0          rstTx 0         
    synRt   20,000             finRt    0                  ackRt    0                  pushRt  0                 
    tcpDrop 0                  udpDrop  0                 
    skOpen  0                  skClose  10,000             skCon    50,000             skErr   10,000             rtt(us) 0.0       
    httpGet 0                  http2XX  0                  httpErr  0                 
    ierrors 0                  oerrors  0                  imissed  0           
    
    
    
                oerrors  0                  imissed  0                 
    

    seconds 1 cpuUsage 0
    pktRx 0 pktTx 0 bitsRx 0 bitsTx 0 dropTx 0
    tcpRx 0 tcpTx 0 udpRx 0 udpTx 0
    arpRx 0 arpTx 0 icmpRx 0 icmpTx 0
    tosRx 0 otherRx 0 badRx 0
    synRx 0 synTx 0 finRx 0 finTx 0 rstRx 0 rstTx 0
    synRt 0 finRt 0 ackRt 0 pushRt 0
    tcpDrop 0 udpDrop 0
    skOpen 0 skClose 0 skCon 0 skErr 0
    httpGet 0 http2XX 0 httpErr 0
    ierrors 0 oerrors 0 imissed 0

    seconds 2 cpuUsage 0
    pktRx 1 pktTx 1 bitsRx 816 bitsTx 432 dropTx 0
    tcpRx 1 tcpTx 0 udpRx 0 udpTx 0
    arpRx 0 arpTx 0 icmpRx 0 icmpTx 0
    tosRx 0 otherRx 0 badRx 0
    synRx 0 synTx 0 finRx 0 finTx 0 rstRx 0 rstTx 1
    synRt 0 finRt 0 ackRt 0 pushRt 0
    tcpDrop 0 udpDrop 0
    skOpen 0 skClose 0 skCon 0 skErr 0
    httpGet 0 http2XX 0 httpErr 0
    ierrors 0 oerrors 0 imissed 0

    
    
    opened by eddyvv 19
  • bind网卡后,dperf启动后有错误,请教一下

    bind网卡后,dperf启动后有错误,请教一下

    `[email protected]:~# ifconfig eth0 down [email protected]:~# modprobe uio [email protected]:~# modprobe uio_pci_generic [email protected]:~# modprobe vfio-pci [email protected]:~# /root/dpdk-stable-20.11.5/usertools/dpdk-devbind.py -b vfio-pci 0000:02:00.0 root@dperf:~# /root/dpdk-stable-20.11.5/usertools/dpdk-devbind.py -s

    Network devices using DPDK-compatible driver

    0000:02:00.0 '82545EM Gigabit Ethernet Controller (Copper) 100f' drv=vfio-pci unused=e1000,uio_pci_generic

    No 'Baseband' devices detected

    No 'Crypto' devices detected

    No 'Eventdev' devices detected

    No 'Mempool' devices detected

    No 'Compress' devices detected

    No 'Misc (rawdev)' devices detected

    No 'Regex' devices detected

    [email protected]:~# /root/dperf/build/dperf -c /root/dperf/test/http/server-cps.conf EAL: Detected 2 lcore(s) EAL: Detected 1 NUMA nodes EAL: Detected shared linkage of DPDK EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'VA' EAL: No available hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: VFIO support initialized EAL: 0000:02:00.0 VFIO group is not viable! Not all devices in IOMMU group bound to VFIO or unbound EAL: Requested device 0000:02:00.0 cannot be used EAL: Bus (pci) probe failed. EAL: No legacy callbacks, legacy socket not created port init fail dpdk init fail [email protected]:~# [email protected]:~# /root/dpdk-stable-20.11.5/usertools/dpdk-devbind.py -u 0000:02:00.0 [email protected]:~# /root/dpdk-stable-20.11.5/usertools/dpdk-devbind.py -b e1000 0000:02:00.0 [email protected]:~# /root/dperf/build/dperf -c /root/dperf/test/http/server-cps.conf EAL: Detected 2 lcore(s) EAL: Detected 1 NUMA nodes EAL: Detected shared linkage of DPDK EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'VA' EAL: No available hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: VFIO support initialized EAL: No legacy callbacks, legacy socket not created port init fail dpdk init fail [email protected]:~# [email protected]:~# /root/dperf/build/dperf -v 1.2.0 [email protected]:~#

    [email protected]:~# cat /root/dperf/test/http/server-cps.conf mode server cpu 0 duration 10m port 0000:02:00.0 6.6.241.27 6.6.241.1 client 6.6.241.1 254 client 6.6.242.1 254 server 6.6.241.27 1 listen 80 1 [email protected]:~# `

    请教一下,现在启动的时候提示port init fail 感觉是网卡没弄对导致的,麻烦指导一下 server-cps.conf的配置文件中只改了端口的名字 这块不是很明白 绑定网卡初期,怎么确定bind的参数是uio uio_pci_generic vfio-pci e1000中的哪一种,前面俩我都绑不上,只有vfio-pci 和e1000 这两种可以,不加这个参数还不行

    绑定没有提示错误,但启动dperf的时候报错,是不是还是网卡绑定的问题 另外,我编辑的时候没有删除线,提交之后日志的部分地方显示删除线,这个您知道在哪设置么``

    opened by digger-yu 17
  • bad gateway. dperf cannot find gateway's MAC address

    bad gateway. dperf cannot find gateway's MAC address

    但是如果两个机器的ip是互通的,我指定另一台机器的一个ip为gateway, 但是出现了Error: bad gateway. dperf cannot find gateway's MAC address. Please check the link. 这是什么原因? 理论上如果两个机器本身可以通信,那如果解析不到mac的原因是?

    opened by thunderZH963 15
  • 在特定的网络拓扑下,dperf发送端和接收端无法连接

    在特定的网络拓扑下,dperf发送端和接收端无法连接

    我有一条IPsec隧道(可以连接两个不同子网),一端是172.30.235.0/24子网,另一端是172.30.236.0/24子网。 dperf服务端:172.30.235.10 dperf客户端:172.30.236.10

    dperf服务端和客户端都在/etc/network/interface中添加了静态路由规则 image

    子网之间能互相ping通,且iperf可以测吞吐 image image

    问题是,dperf client发的包,dperf server端收不到。配置如下 image

    我之后尝试只开启dperf server,client端去ping,server端是有数据输出的,所以我推测dperf client端发包有问题,导致服务端没收到。 麻烦看一下,谢谢~

    opened by jiawen94 15
  • 在只有一个numa的时候,开启多核的时候并发数不准

    在只有一个numa的时候,开启多核的时候并发数不准

    我开启多核测试并发连接数,设置cc和cps后,发现客户端配置不同的keep_alive值会有可能超过或者达不到设置的cc值,需要调节keep_alive值才能达到预期,而且不是很准确;我换成单cpu就好了。 部分配置如下:我的计算方式,一个连接持续时间2s*33=66s,虽然设置cps是2000,但是实际只有1500,经过大约66s后达到100k左右。 mode client tx_burst 128 launch_num 10 cpu 0-3 socket_mem 2500,0,0,0 payload_size 1 rss auto duration 10m cps 2000 cc 100k keepalive 2s 33

    opened by zrgtester 12
Releases(v1.4.0)
  • v1.4.0(Dec 14, 2022)

    v1.4.0 - 2022-12-14

    Added

    • support dpdk-22.11

      thanks ykzj

    • support LoongArch

      thanks choumin

    • payload random

      thanks uname-v

    Fixed

    • crash at tcp reply reset

    • vlan check

      thanks owenstake

    • crash by kni_broadcast()

      thanks sheva7777

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Aug 31, 2022)

    v1.3.0 - 2022-09-01

    Added

    • 10us keepalive request interval

      thanks jiawen94

    • vlan

      thanks hgkiller

    • config client local port range for google cloud

      thanks MichaelZhangCN, vsv1020, wanggaoli

    • article: using dperf to test network bandwidth

      thanks thunderZH963(Hua Zhang)

    Fixed

    • in 'rss auto' mode, the number of UDP concurrent connections is incorrectly counted

    • mq_rx_none: don't set RTE_ETH_MQ_RX_RSS

    • compile warning

      thanks digger-yu

    • double semicolons

      thanks yangwenrui

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Jun 1, 2022)

    v1.2.0 - 2022-06-01

    Added

    • http client
    • change_dip: before the packet is sent, a huge IP pool is used to change the dest IP

    Changed

    • rss support l3/l3l4/auto
    • optimize statistics

    Fixed

    • FIX: kni only use interface IP
    • FIX: large rx/tx descriptor number
    • FIX: print more message for bad gateway error
    • FIX: tcp closing state
    • FIX: separate tcp and http
    Source code(tar.gz)
    Source code(zip)
Owner
Baidu
Baidu Open Source Projects
Baidu
tiny HTTP parser written in C (used in HTTP::Parser::XS et al.)

PicoHTTPParser Copyright (c) 2009-2014 Kazuho Oku, Tokuhiro Matsuno, Daisuke Murase, Shigeo Mitsunari PicoHTTPParser is a tiny, primitive, fast HTTP r

H2O 1.6k Jan 1, 2023
A collection of C++ HTTP libraries including an easy to use HTTP server.

Proxygen: Facebook's C++ HTTP Libraries This project comprises the core C++ HTTP abstractions used at Facebook. Internally, it is used as the basis fo

Facebook 7.7k Jan 4, 2023
Pushpin is a reverse proxy server written in C++ that makes it easy to implement WebSocket, HTTP streaming, and HTTP long-polling services.

Pushpin is a reverse proxy server written in C++ that makes it easy to implement WebSocket, HTTP streaming, and HTTP long-polling services. The project is unique among realtime push solutions in that it is designed to address the needs of API creators. Pushpin is transparent to clients and integrates easily into an API stack.

Fanout 3.2k Jan 2, 2023
cuehttp is a modern c++ middleware framework for http(http/https)/websocket(ws/wss).

cuehttp 简介 cuehttp是一个使用Modern C++(C++17)编写的跨平台、高性能、易用的HTTP/WebSocket框架。基于中间件模式可以方便、高效、优雅的增加功能。cuehttp基于boost.asio开发,使用picohttpparser进行HTTP协议解析。内部依赖了nl

xcyl 29 Dec 17, 2022
Gromox - Groupware server backend with MAPI/HTTP, RPC/HTTP, IMAP, POP3 and PHP-MAPI support for grommunio

Gromox is the central groupware server component of grommunio. It is capable of serving as a replacement for Microsoft Exchange and compatibles. Conne

grommunio 139 Dec 26, 2022
A very basic eBPF Load Balancer in a few lines of C

An eBPF Load Balancer from scratch As seen at eBPF Summit 2021. This is not production ready :-) This uses libbpf as a git submodule. If you clone thi

Liz Rice 168 Jan 8, 2023
HTTP and WebSocket built on Boost.Asio in C++11

HTTP and WebSocket built on Boost.Asio in C++11 Branch Linux/OSX Windows Coverage Documentation Matrix master develop Contents Introduction Appearance

Boost.org 3.6k Jan 4, 2023
Cross-platform, efficient, customizable, and robust asynchronous HTTP/WebSocket server C++14 library with the right balance between performance and ease of use

What Is RESTinio? RESTinio is a header-only C++14 library that gives you an embedded HTTP/Websocket server. It is based on standalone version of ASIO

Stiffstream 924 Jan 6, 2023
A C++ header-only HTTP/HTTPS server and client library

cpp-httplib A C++11 single-file header-only cross platform HTTP/HTTPS library. It's extremely easy to setup. Just include the httplib.h file in your c

null 8.3k Dec 31, 2022
Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution

CppServer Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and

Ivan Shynkarenka 958 Jan 3, 2023
A modern C++ network library for developing high performance network services in TCP/UDP/HTTP protocols.

evpp Introduction 中文说明 evpp is a modern C++ network library for developing high performance network services using TCP/UDP/HTTP protocols. evpp provid

Qihoo 360 3.2k Jan 5, 2023
http request/response parser for c

HTTP Parser http-parser is not actively maintained. New projects and projects looking to migrate should consider llhttp. This is a parser for HTTP mes

Node.js 6.1k Jan 2, 2023
C++ library for creating an embedded Rest HTTP server (and more)

The libhttpserver reference manual Tl;dr libhttpserver is a C++ library for building high performance RESTful web servers. libhttpserver is built upon

Sebastiano Merlino 711 Dec 27, 2022
Mongoose Embedded Web Server Library - a multi-protocol embedded networking library with TCP/UDP, HTTP, WebSocket, MQTT built-in protocols, async DNS resolver, and non-blocking API.

Mongoose - Embedded Web Server / Embedded Networking Library Mongoose is a networking library for C/C++. It implements event-driven non-blocking APIs

Cesanta Software 9k Jan 1, 2023
nghttp2 - HTTP/2 C Library and tools

nghttp2 - HTTP/2 C Library This is an implementation of the Hypertext Transfer Protocol version 2 in C. The framing layer of HTTP/2 is implemented as

nghttp2 4.2k Jan 2, 2023
C library to create simple HTTP servers and Web Applications.

Onion http server library Travis status Coverity status Onion is a C library to create simple HTTP servers and Web Applications. master the developmen

David Moreno Montero 1.9k Dec 20, 2022
C++ client for making HTTP/REST requests

REST client for C++ About This is a simple REST client for C++. It wraps libcurl for HTTP requests. Usage restclient-cpp provides two ways of interact

Daniel Schauenberg 1.4k Dec 30, 2022
http request/response parser for c

HTTP Parser http-parser is not actively maintained. New projects and projects looking to migrate should consider llhttp. This is a parser for HTTP mes

Node.js 6.1k Jan 3, 2023
cherry: A Minimal HTTP Server

cherry: A Minimal HTTP Server Inspired by the Capriccio project and the Zaver HTTP server, cherry started out as an experimental project trying to inc

Zee 22 Feb 21, 2022