百度又开源一款压测工具,可模拟几十亿的并发场景,太强悍了

news2025/1/18 8:27:35



dperf 是百度开源的一款基于 DPDK 的 100Gbps 网络性能和负载测试软件,能够每秒建立千万级的 HTTP 连接、亿级别的并发请求和数百 Gbps 的吞吐量。

优点

性能强大:

  • 基于 DPDK,使用一台普通 x86 服务器就可以产生巨大的流量:千万级的 HTTP 每秒新建连接数,数百 Gbps 的带宽,几十亿的并发连接数

统计信息详细:

  • 能够输出详细的统计信息,并且识别每一个丢包

使用场景丰富:

  • 可用于对四层负载均衡等四层网关进行性能压力测试、长稳测试
  • 可用于对云上虚拟机的网络性能进行测试
  • 可用于对网卡性能、CPU 的网络报文处理能力进行测试压测场景下,可作为高性能的 HTTP Server 或 HTTP Client 单独使用

性能

HTTP 每秒新建连接数

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 吞吐

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 并发连接数

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

UDP TX PPS

Client Cores TX MPPS Client CPU Usage(%) 1 15.96 95 2 29.95 95 4 34.92 67 6 35.92 54 8 37.12 22

测试环境配置

dperf 的以上性能数据,基于下面的配置测试得到:

  • 内存: 512GB(大页 100GB)
  • 网卡: Mellanox MT27710 25Gbps * 2
  • 内核: 4.19.90

统计数据

dperf 每秒输出多种统计数据:

  • TPS, CPS, 各种维度的 PPS
  • TCP/Socket/HTTP 级别的错误数
  • 丢包数
  • 按照 TCP Flag 分类的报文重传数
seconds 22                 cpuUsage 52  
pktRx   3,001,058          pktTx    3,001,025          bitsRx   2,272,799,040      bitsTx  1,920,657,600      dropTx  0  
arpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                  otherRx 0          badRx 0  
synRx   1,000,345          synTx    1,000,330          finRx    1,000,350          finTx   1,000,350          rstRx   0          rstTx 0  
synRt   0                  finRt    0                  ackRt    0                  pushRt  0                  tcpDrop 0  
skOpen  1,000,330          skClose  1,000,363          skCon    230                skErr   0  
httpGet 1,000,345          http2XX  1,000,350          httpErr  0  
ierrors 0                  oerrors  0                  imissed  0  

开始使用

设置大页

#参考如下参数编辑 '/boot/grub2/grub.cfg',然后重启OS  
linux16 /vmlinuz-... nopku transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=8  

编译 DPDK

#编辑'config/common_base'打开PMD开关  
#Mellanox CX4/CX5 requires 'CONFIG_RTE_LIBRTE_MLX5_PMD=y'  
#HNS3 requires 'CONFIG_RTE_LIBRTE_HNS3_PMD=y'  
#VMXNET3 requires 'CONFIG_RTE_LIBRTE_VMXNET3_PMD=y'  
  
TARGET=x86_64-native-linuxapp-gcc #or arm64-armv8a-linuxapp-gcc  
cd /root/dpdk/dpdk-stable-19.11.10  
make install T=$TARGET -j16  

编译 dperf

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

绑定网卡

#Mellanox网卡跳过此步  
#假设PCI号是0000:1b:00.0  
  
modprobe uio  
modprobe uio_pci_generic  
/root/dpdk/dpdk-stable-19.11.10/usertools/dpdk-devbind.py -b uio_pci_generic 0000:1b:00.0  

启动 dperf server

#dperf server监听6.6.241.27:80, 网关是6.6.241.1  
./build/dperf -c test/http/server-cps.conf  

从客户端发送请求

#客户端IP必须要在配置文件的'client'范围内  
ping 6.6.241.27  
curl http://6.6.241.27/  

运行测试

下面的例子运行一个 HTTP CPS 压力测试。在 server 端运行 dperf ./build/dperf -c test/http/server-cps.conf

#以另一台机器作为client端,运行dperf  
./build/dperf -c test/http/client-cps.conf  


4ccaa29c7d3d1e29a7685bdc54e9b1b9.jpeg

eb1dc5886f02c4eaed5305f50eb7d804.jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/896233.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[oeasy]python0085_[趣味拓展]字体样式_下划线_中划线_闪动效果_反相_取消效果

字体样式 回忆上次内容 \033 xm 可以改变字体样式 0m - 10m 之间设置的 都是字体效果 0m 复原1m 变亮2m 变暗 从3m到10m 又是什么效果 呢?? 真的可以 让文字 blink闪烁吗?👁 3m 3m 实现斜体字的效果 4m 4m 对应着下划线 控…

==和equals方法之间的区别,hashcode的理解,String拼接,Spring拆分

==和equals方法之间的区别 字符串有字符串常量池的概念,本身就推荐使用String s="字符串", 这种形式来创建字符串对象, 而不是通过new关键字的方式, 因为可以把字符串缓存在字符串常量池中,方便下次使用,不用遇到new就在堆上开辟一块新的空间 有一对双胞胎姐妹,晓苑…

LabVIEW开发感应电机自动测试台

LabVIEW开发感应电机自动测试台 设计开发先进的电机测试台,能够测试额定功率为0-15hp的单相和三相感应电动机。系统能够测量感应电动机的不同参数,例如电压,电流,有功功率,无功功率,视在功率,功…

有限状态机--实现cp的功能

有限状态机–实现cp的功能 执行的任务 上图是我们想实现的任务&#xff0c;对于A机来说&#xff0c;从fd1读取内容写到fd2&#xff0c;B机要做的是从fd2读取内容写到fd1中。 画出A机的状态。 代码示例 fsm.c #include <stdio.h> #include <stdlib.h> #include …

ShowMeBug CEO李亚飞受邀参加深圳青年创新创业系列沙龙电子信息专场

7月13日下午&#xff0c;由深圳市科技交流服务中心&#xff08;深圳市科技专家委员会办公室&#xff09;主办&#xff0c;深圳新一代产业园承办的“2023深圳青年创新创业系列沙龙——电子信息专场”活动举行。ShowMeBug CEO李亚飞受邀参加此次活动。 深圳市科学技术协会党组成员…

web JS高德地图标点、点聚合、自定义图标、自定义窗体信息、换肤等功能实现和高复用性组件封装教程

文章目录 前言一、点聚合是什么&#xff1f;二、开发前准备三、API示例1.引入高德地图2.创建地图实例3.添加标点4.删除标点5.删除所有标点&#xff08;覆盖物&#xff09;6.聚合点7.自定义聚合点样式8.清除聚合9.打开窗体信息 四、实战开发需求要求效果图如下&#xff1a;封装思…

nginx php-fpm安装配置

nginx php-fpm安装配置 nginx本身不能处理PHP&#xff0c;它只是个web服务器&#xff0c;当接收到请求后&#xff0c;如果是php请求&#xff0c;则发给php解释器处理&#xff0c;并把结果返回给客户端。 nginx一般是把请求发fastcgi管理进程处理&#xff0c;fascgi管理进程选…

基于YOLOX的输电线路异物检测算法研究及软件设计_有系统有文献,整体认知蛮好的

我国自改革开放以来&#xff0c;大力发展工业和经济&#xff0c;对电能同样有着巨大的需求&#xff0c;所需求的电能不仅需要保证其数量&#xff0c;还要保障其质量&#xff0c;因此对整个电力系统安全稳定的运行也提出了更高的要求&#xff0c;电力系统发生故障要实时检测并及…

从零做软件开发项目系列之一综论软件项目开发

1 引言 有一个三个泥瓦匠的故事。 三个泥瓦匠在砌墙&#xff0c;一个人走过来&#xff0c;问他们在干什么。   第一个泥瓦匠没好气地说&#xff0c;你没看见吗&#xff1f;我在辛苦地砌墙呢。   第二个回答&#xff0c;我们正在建一座高楼。   第三个则洋溢着喜悦说&…

Vue2子组件修改父组件的方法

Vuex Vuex 是状态管理器&#xff0c;集中式存储管理所有组件的状态。 Vuex速成整理_AYBAIWAN的博客-CSDN博客https://blog.csdn.net/aybaiwan/article/details/131442547?spm1001.2014.3001.5501vuex中this.$store.commit和this.$store.dispatch的用法_老电影故事的博客-CSD…

第八届XCTF联赛首场国际外卡赛——WACON2023即将开启!

由国际战队SuperGuesser操刀命题 第八届XCTF首场国际外卡赛 WACON2023即将开启 线上资格赛前6名队伍 将晋级WACON2023总决赛 飞往韩国首尔 与全球顶尖白帽黑客一决高下 总决赛冠军队伍将获得&#xff1a; 3千万韩元&#xff08;折合人民币16万&#xff09;高额奖金 &第八…

Java IO流(一)IO基础

概述 IO流本质 I/O表示Input/Output,即数据传输过程中的输入/输出,并且输入和输出都是相对于内存来讲Java IO(输入/输出)流是Java用于处理数据读取和写入的关键组件常见的I|O介质包括 文件(输入|输出)网络(输入|输出)键盘(输出)显示器(输出)使用场景 文件拷贝&#xff08;File&…

基于Java的深圳坂田附近闲置物品交易群管理系统

开发技术&#xff1a;java 开发框架&#xff1a;springmvc、spring、mybatis 数据库&#xff1a;mysql 备注&#xff1a;方便大家将手中的二手闲置物品转让给需要的人&#xff0c;例如大家搬家的时候&#xff0c;有不要的&#xff08;冰箱、洗衣机、桌子、椅子&#xff09;等物…

【3519DV500】AI算法承载硬件平台_2.5T算力+AI ISP图像处理_超感光视频硬件方案开发

Hi3519DV500 内置双核 A55 &#xff0c;提供高效、丰富和灵活的CPU 资源&#xff0c;以满足客户计算和控制需求。 Hi3519DV500集成了高效的神经网络推理引擎&#xff0c;最高2.5Tops NN算力&#xff0c;支持业界主流的神经 网络框架。神经网络支持完整的 API 和工具链&#xf…

Qt使用qml(QtLocation)显示地图

一、qt版本和QtLocation模块版本确认 如果qt版本过低的话是没有QtLocation模块的&#xff0c;我的版本如下 构建工具版本如下 二、qml代码编写 1、工程中添加模块 首先在工程中添加模块quickwidgets positioning location 2、添加资源文件 3、在资源文件中添加qml文件 …

什么是卷积神经网络

目录 什么是卷积神经网络 全链接相对笨重&#xff1a;大胖子​编辑 ​编辑 参数众多&#xff1a;容易造成过拟合 ​编辑 卷积核&#xff1a;进行图像特征提取&#xff0c;源于卷积原理&#xff1a;求相交面积 卷积的作用 卷积的意义 ​编辑 通过卷积核减少参数 深度卷积…

【001】ts学习笔记-准备工作和【基本类型】

typescript安装的包 npm i typescript #安装ts npm i types/node --save-dev # TypeScript 项目中使用类型检查和自动补全。 npm i ts-node -g #可直接在nodejs环境中使用ts, 如&#xff1a;ts-node example.tstsc 常用命令 tsc -init #生成tsc目录下的配置文件:tsconfig.jso…

ADAS-干货|自动驾驶汽车E/E拓扑架构与软件功能框架

引言 之前在公众号中我们对自动驾驶常见传感器的原理进行了讲解&#xff0c;如《可见光相机》《IMU惯导传感器》《GPS传感器原理》《毫米波雷达原理》以及《激光雷达原理》。今天我们将结合TI自动驾驶部门专家发表的相关的论文&#xff0c;讲解现代自动驾驶汽车车身电气架构以及…

dockerfile的概念

目录 一、Dockerfile 概念 1.1 docker镜像的分层 二、Docker镜像的创建 2.1 基于已有的镜像创建 2.2 基于本地模板创建 2.3 基于dockerfile创建 2.3.1 dockerfile 结构(四部分) 三、Dockerfile操作指令 3.1 ENTRYPOINT指令 3.2 CMD 与entrypoint 3.3 小结 四、ADD和…

STM32——SPI外设总线

SPI外设简介 STM32内部集成了硬件SPI收发电路&#xff0c;可以由硬件自动执行时钟生成、数据收发等功能&#xff0c;减轻CPU的负担 可配置8位/16位数据帧、高位先行/低位先行 时钟频率&#xff1a; fPCLK / (2, 4, 8, 16, 32, 64, 128, 256) 支持多主机模型、主或从操作 可…