vpp继续

vpp继续

还是掉坑里了

装完了vpp后,部署启动,访问vpp IP也没有问题。启动iperf3 -s –bind vppIP 提示下面的错误

找同事部署的虚拟机测试直接能起来,这~~

换版本再来

这次打算编译个新版本,make build的时候报了缺少ply错误,但是发现这个包在pyhton里面都安装有

为了快速测试,找了一个23版本已经编译好的仓库地址

cat /etc/yum.repos.d/fdio_release.repo 
[copr:copr.fedorainfracloud.org:nucleo:vpp-23.10]
name=Copr repo for vpp-23.10 owned by nucleo
baseurl=https://download.copr.fedorainfracloud.org/results/nucleo/vpp-23.10/epel-8-$basearch/
type=rpm-md
skip_if_unavailable=True
gpgcheck=1
gpgkey=https://download.copr.fedorainfracloud.org/results/nucleo/vpp-23.10/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1
vppctl show version
vpp v23.10-release built by mockbuild on  at 2023-10-25T15:23:53

安装完成,使用iperf3跑下带宽测试

带宽测试

测试方案

分别在vppIP机器上和普通物理机上启动服务端

#vpp机器
VCL_CFG=/etc/vpp/vcl.conf
LDP_PATH=/usr/lib64/libvcl_ldpreload.so
LD_PRELOAD=$LDP_PATH VCL_CONFIG=$VCL_CFG  iperf3 -s --bind vppip .245

#物理机
 iperf3 -s --bind 物理机IP.103

客户端启动

iperf3 -c vppip .245|物理机IP.103 -p 5201 -t 5

测试结果

可以看到网络传输性能上有很大提升

性能测试

测试方案

压测工具wrk(https://github.com/wg/wrk.git
-c, --connections: total number of HTTP connections to keep open with each thread handling N = connections/threads
-d, --duration: duration of the test, e.g. 2s, 2m, 2h
-t, --threads: total number of threads to use
-s, --script: LuaJIT script, see SCRIPTING
-H, --header: HTTP header to add to request, e.g. "User-Agent: wrk"
--latency: print detailed latency statistics
--timeout: record a timeout if a response is not received within this amount of time.
性能指标1、每秒请求数(RPS) – 衡量处理 HTTP 请求的能力。在测试中,每个客户端通过 keepalive 连接发送 1 KB 大小文件的请求。反向代理服务器处理每个请求,并通过另一个 keepalive 连接将其转发到 Web 服务器。
2、每秒 SSL/TLS 事务数(TPS) – 衡量处理新 SSL / TLS 连接的能力。在测试中,每个客户端都会发送一系列 HTTPS 请求,每个请求都在一个新连接上。反向代理服务器解析请求并通过已建立的 keepalive 连接将它们转发到 Web 服务器。Web 服务器为每个请求发回 0 字节的响应。
3、吞吐量 – 测量 NGINX 在通过 HTTP 提供 1 MB 文件时可以承受的吞吐量。
运行测试1、通过 taskset 指令, 充分使用每个 CPU ,可以将单个 wrk 进程固定到 CPU。与增加 wrk 线程数相比,此方法产生更一致的结果。
2、for i in `seq 1 number-of-CPUs` ,下面的$i基于测试发起机的CPU核数
网上测试例子:
RPS
taskset -c $i wrk -t 1 -c 50 -d 180s http://[hostIP|vppIP]/1kb.bin
TPS
taskset -c $i wrk -t 1 -c 50 -d 180s -H ‘Connection: close’ https://[hostIP|vppIP]/0kb.bin
Throughput
taskset -c $i wrk -t 1 -c 50 -d 180s http://[hostIP|vppIP]/1mb.bin

业务测试例子:
RPS
taskset -c $i wrk -t 1 -c 50 -d 180s -H ‘Host: ***’ http://[hostIP|vppIP]/业务接口
TPS
taskset -c $i wrk -t 1 -c 50 -d 180s -H ‘Host: ***’ -H ‘Connection: close’ https://[hostIP|vppIP]/业务接口
#服务端启动Nginx
#vpp机器
VCL_CFG=/etc/vpp/vcl.conf
LDP_PATH=/usr/lib64/libvcl_ldpreload.so
LD_PRELOAD=$LDP_PATH VCL_CONFIG=$VCL_CFG  ./sbin/nginx

#物理机
 ./sbin/nginx 物理机IP.103

#客户端启动wrk进行测试

测试结果

  1. 在网上的测试例子RPS和TPS中(传输文件),vpp+Nginx比单机Nginx快一些,但是快得不多;
  2. 使用业务测试例子,vpp+Nginx比单机Nginx还要慢一些,在7层的提升没有看到效果。

写在最后

vpp的环境算是在物理机上跑通了,后期有时间进行一些软件参数配置方面的研究,提高一下软件运行的稳定性。

留下回复

error: Content is protected !!