网站性能测试的最佳实践 附录 测试辅助脚本: 执行该脚本,可快速发起多个 netperf 进程。 plaintext !/bin/bash count$1 for ((i1;i<count;i++)) do echo "Instance:$i" 下方命令可以替换为测试场景表格中的命令 H 后填写服务器 IP 地址; l 后为测试时间,为了防止 netperf 提前结束,因此时间设为 10000; netperf t UDPSTREAM H l 10000 m 64 R 1 & done DPDK测试 编译安装 DPDK 1. 准备2台测试机器,请参见 自定义配置 Linux 云主机 购买测试机器。本文测试机器使用 CentOS 8.2 操作系统。 2. 依次登录测试机器,并执行以下命令下载 DPDK 工具。 plaintext yum install y sysstat wget tar automake make gcc wget tar xf dpdk17.11.tar.gz mv dpdk17.11 dpdk 3. 修改 txonly 引擎,使每个 DPDK 发包 CPU 上的 UDP 流量的端口变动产生多条流。 1. 执行以下命令,修改 dpdk/app/testpmd/txonly.c 文件。 plaintext vim dpdk/app/testpmd/txonly.c 按 i 进入编辑模式,修改以下内容: 找到 include "testpmd.h",另起一行输入如下内容: plaintext RTEDEFINEPERLCORE(struct udphdr, lcoreudphdr); 修改完成后,如下图所示: 找到 olflags PKTTXMACSEC;,另起一行输入如下内容: plaintext / dummy test udp port / static uint16t testport 0; testport++; memcpy(&RTEPERLCORE(lcoreudphdr), &pktudphdr, sizeof(pktudphdr)); RTEPERLCORE(lcoreudphdr).srcport rtecputobe16(rtelcoreid() 199 + testport % 16); RTEPERLCORE(lcoreudphdr).dstport rtecputobe16(rtelcoreid() 1999 + testport % 16); 修改完成后,如下图所示: 找到 copybuftopkt(&pktudphdr, sizeof(pktudphdr), pkt,,将其替换为如下内容: plaintext copybuftopkt(&RTEPERLCORE(lcoreudphdr), sizeof(RTEPERLCORE(lcoreudphdr)), pkt, 修改完成后,如下图所示: 按 Esc 输入 :wq 保存修改并退出。 2. 执行以下命令,修改 dpdk/config/commonbase 文件。 plaintext vim dpdk/config/commonbase 按 i 进入编辑模式,找到 CONFIGRTEMAXMEMSEG256,将其修改为1024。修改完成后如下图所示: 按 Esc 输入 :wq 保存修改并退出。 4. 执行以下命令,将 dpdk/app/testpmd/txonly.c 的 IP 地址修改为测试机器所用 IP。 plaintext vim dpdk/app/testpmd/txonly.c 按 i 进入编辑模式,找到如下内容: plaintext