linux系统测试网络pps、带宽和延时(方案来源于阿里云)

此方案来源于阿里云

pps测试

步骤

  1. 分别在测试机和辅助测试机上执行以下命令,下载Netperf。
shell 复制代码
wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
  1. 分别在测试机和辅助测试机上执行以下命令,安装Netperf和sar监控工具。
shell 复制代码
sudo yum install -y gcc autoconf automake libtool sysstat
tar -zxvf netperf-2.7.0.tar.gz
  1. 查看gcc的版本(版本需要大于10)
shell 复制代码
gcc -v 2>&1
  1. 编译之前修改代码
shell 复制代码
cd netperf
vim src/nettest_omni.c
c 复制代码
# 去掉下面文件中的代码
/* different options for the sockets        */
int
  loc_nodelay,    /* don't/do use NODELAY  locally    */
  rem_nodelay,    /* don't/do use NODELAY remotely  */
  loc_sndavoid,    /* avoid send copies locally    */
  loc_rcvavoid,    /* avoid recv copies locally    */
  rem_sndavoid,    /* avoid send copies remotely    */
  rem_rcvavoid;   /* avoid recv_copies remotely    */
  1. 编译并安装
shell 复制代码
cd netperf
sudo ./configure
sudo make && sudo make install
  1. 查看测试机的ip
shell 复制代码
ifconfig
  1. 在测试机上执行以下命令,启动64个netserver服务。
shell 复制代码
#!/bin/bash
for j in `seq 64`; do
    netserver -p $[16000+j] > server_$[16000+j].netperf > /dev/null 2>&1  &
done
  1. 在辅助测试机上执行以下命令,向测试机输入流量。
shell 复制代码
#!/bin/bash
server_ip=<测试机私网IP地址>
for j in `seq 64`; do
    port=$[16000+j]
    netperf -H ${server_ip} -l ${run_time:-300} -t UDP_STREAM  -p $port  -- -m 1 -D > /dev/null 2>&1 &
done
  1. 在测试机上执行以下命令,测试网络PPS。
shell 复制代码
sar -n DEV 1

带宽

前面8个步骤的都是一样的,这里从第9步开始描述

  1. 在辅助测试机上执行以下命令,向测试机输入流量。
shell 复制代码
#!/bin/bash
server_ip=<测试机私网IP地址>
for j in `seq 64`; do
    port=$[16000+j]
    netperf -H ${server_ip} -l ${run_time:-300} -t TCP_STREAM -p $port -- -D > /dev/null 2>&1 & 
done
  1. 在测试机上执行以下命令,测试网络带宽。
shell 复制代码
sar -n DEV 1

延时

  1. 分别在测试机和辅助测试机上执行以下命令,安装sockperf。
shell 复制代码
sudo yum install -y autoconf automake libtool gcc-c++
cd /opt
sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
sudo tar -zxf 3.8.tar.gz
cd sockperf-3.8/
sudo ./autogen.sh
sudo ./configure
sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
sudo make install
  1. 在测试机上执行以下命令,启动服务。
shell 复制代码
sockperf sr --tcp --daemonize
  1. 在辅助测试机上执行以下命令,向测试机输入流量。
shell 复制代码
sockperf pp -i <测试机私网IP地址> --tcp -t 30 -m 14 --full-log=result.json
  • 以avg-latency开头的结果数据表示平均时延,单位为us。
  • 以percentile 99.000开头的结果数据表示99分位时延,单位为μs。
相关推荐
斯~内克2 分钟前
鸿蒙网络通信全解析:从网络状态订阅到高效请求实践
网络·php·harmonyos
Bruce-li__20 分钟前
创建私人阿里云docker镜像仓库
阿里云·docker·云计算
傻啦嘿哟24 分钟前
HTTP代理:网页加速的隐形引擎
网络·网络协议·http
傻啦嘿哟32 分钟前
开发者视角:应用程序中HTTP代理的集成指南
网络·网络协议·http
爱写代码的小朋友1 小时前
IP 地址规划中的子网划分:/18 网络容纳 64 个 C 段(/24)的原理与应用解析
网络·网络协议·tcp/ip
易保山1 小时前
MIT6.S081 - Lab6 Copy-on-Write(写时复制)
linux·操作系统·c
獨枭1 小时前
Linux 下安装和使用 Jupyter Notebook
linux·chrome·jupyter
十五年专注C++开发1 小时前
WebSocket原理详解(二)
网络·websocket·网络协议
Monee..1 小时前
linux里安装pip和conda
linux·conda·pip
阳区欠2 小时前
【Linux】进程通信
linux·运维·服务器·共享内存·进程通信·system v·管道文件