T-rex压测工具使用

天翼云开发者社区
• 阅读 5

本文分享自天翼云开发者社区《T-rex压测工具使用》,作者:f****n

trex使用 一、软件版本 TRex版本:v3.00 二、无状态模式(单设备发包) 1.工作目录

cd /home/root/trex/scripts/

2.dpdk网卡使用

modprobe uio
insmod /home/root/pktgen-3.7.2/igb_uio.ko
/home/root/dpdk-devbind.py -b igb_uio 3b:00.1 &&\
/home/root/dpdk-devbind.py -b igb_uio af:00.1

3.stl服务启动

//-i 交互模式, --stl 无状态模式 --no-scapy-server 禁用 Scapy 服务器,Scapy 是一个 Python 库,用于网络数据包的创建和解析   -c 16 运行16个lcore
./t-rex-64 -i  --stl --no-scapy-server -c 16

4.控制台启动

//在新窗口
./trex-console -s 127.0.0.1 --force

5.控制台执行脚本

trex> start -f stl/split_var_to_cores.py -m 700000
// -m 700000 为重复次数,执行这个脚本得话实际看是pps数量,

6.脚本介绍 stl/split_var_to_cores.py 作用:测试other协议包、udp协议包等自定义类型包,可以指定payload长度

from trex_stl_lib.api import *
import argparse


class STLS1(object):

    def create_stream (self, direction):
        payload_len = 0
        #GRE
        #base_pkt =  Ether(dst='00:00:aa:aa:aa:aa',src='00:00:bb:bb:bb:bb')/IP()/GRE(key=12345)/IP()/UDP()/('!'*payload_len)
        #TCP SYN
        base_pkt =  Ether(dst='00:00:aa:aa:aa:aa',src='00:00:bb:bb:bb:bb')/IP()/TCP(flags="S")/('!'*payload_len)
        #UDP
        #base_pkt =  (Ether(dst='00:00:aa:aa:aa:aa',src='00:00:bb:bb:bb:bb')/IP()/UDP()/('*' * payload_len))
        #VLAN
       #base_pkt =  (Ether(dst='00:00:aa:aa:aa:aa',src='00:00:bb:bb:bb:bb')/Dot1Q(vlan=189)/IP()/UDP()/('*' * payload_len))

        ip_range = {'src': {'start': "10.0.0.1", 'end': "10.255.255.254"},
                    'dst': {'start': "8.0.0.1",  'end': "8.0.0.5"}}

        if (direction == 0):
            src = ip_range['src']
            dst = ip_range['dst']
        else:
            src = ip_range['dst']
            dst = ip_range['src']


        vm = STLVM()

        vm.var(name="src", min_value=src['start'], max_value=src['end'], size=4, op='inc')
        vm.var(name="dst", min_value=dst['start'], max_value=dst['end'], size=4, op='inc')
        vm.var(name="src", min_value=1024, max_value=65535, size=2, op='inc')       # 端口号按递增赋值
        vm.var(name="dst", min_value=5011, max_value=5011, size=2, op='inc')
     #vm.repeatable_random_var(fv_name="src_port", size=2, min_value = 1024, max_value = 65535, limit=3, seed=0)     # 随机值,seed要为可变值才能实现随机,如使用时间戳
     #vm.repeatable_random_var(fv_name="dst_port", size=2, min_value = 1024, max_value = 65535, limit=3, seed=0)
        vm.write(fv_name="src", pkt_offset='IP.src')
        vm.write(fv_name="dst", pkt_offset='IP.dst')
        #vm.write(fv_name="src_port", pkt_offset="UDP.sport")       # 根据TCP/UDP选择切换
        #vm.write(fv_name="dst_port", pkt_offset="UDP.dport")
        vm.write(fv_name="src_port", pkt_offset="TCP.sport")
        vm.write(fv_name="dst_port", pkt_offset="TCP.dport")
        vm.fix_chksum(offset='IP')
        return STLStream(packet = STLPktBuilder(pkt = base_pkt, vm = vm),
                         mode = STLTXCont())

    def get_streams (self, direction, tunables, **kwargs):
        parser = argparse.ArgumentParser(description='Argparser for {}'.format(os.path.basename(__file__)),
                                         formatter_class=argparse.ArgumentDefaultsHelpFormatter)

        args = parser.parse_args(tunables)
        # create 1 stream
        return [ self.create_stream(direction) ]


# dynamic load - used for trex console or simulator
def register():
    return STLS1()
点赞
收藏
评论区
推荐文章
RPM常用命令以及组合使用场景
本文分享自天翼云开发者社区《》,作者:邬祥钊当涉及到管理基于RedHat系的Linux系统时,RPM(RedHatPackageManager)是一个常用的软件包管理器。以下是一些常用的RPM命令以及它们的组合使用场景:常用命令:1.rpmivhpacka
Springfox与SpringDoc——swagger如何选择(SpringDoc入门)
本文分享自天翼云开发者社区@《》,作者:才开始学技术的小白0.引言之前写过一篇关于swagger(实际上是springfox)的使用指南(https://www.ctyun.cn/developer/article/371704742199365),涵盖了
LUKS加密卷应用技术简介
本文分享自天翼云开发者社区@《》,作者:CD一、LUKS加密简述LUKS(LinuxUnifiedKeySetup)是Linux系统下常用的磁盘加密技术之一(是一种加密规范,而非一种加密算法),具有以下特点:支持多密码对同一个设备的访问;加密密钥不依赖密码
Dummynet简单部署
本文分享自天翼云开发者社区《Dummynet简单部署》,作者:凸凹部署流程^准备内核版本 ^参看系统内核版本unamer 我们需要将ipfw编译成内核模块,请确保ipfw用到的内核源码版本同你linux系统运行内核版本一致。
大数据通用组件故障处理
本文分享自天翼云开发者社区《》,作者:fnHDFS1.HDFS服务一直异常检查HDFS是否处于安全模式。检查ZooKeeper服务是否运行正常。2.HDFS维护客户端出现OutOfMemoryError异常使用HDFS客户端之前,需要在HADOOPCLIE
Redis 高可用方案
本文分享自天翼云开发者社区《》,作者:芋泥麻薯一、常见使用方式Redis的几种常见使用方式包括:•Redis单副本;•Redis多副本(主从);•RedisSentinel(哨兵);•RedisCluster;•dynomite;二、各种使用方式的优缺点1
云备份技术解析:永久增量备份
本文分享自天翼云开发者社区《》,作者:沈军天翼云云主机备份和云硬盘备份基于永久增量备份技术实现。备份分为全量备份和增量备份。云硬盘创建的第一份备份是全量备份,备份创建时间点云盘上所有已使用的数据块,不备份未使用的数据块。后续创建的备份均是增量备份,仅备份上
使用element-ui 的上传组件upload完成自定义上传到天翼云oss云服务器
本文分享自天翼云开发者社区@《》,作者:我是小朋友首先配置天翼云,如下操作1、要求在使用OOS之前,首先需要在www.ctyun.cn注册一个账号(Account)。创建AccessKeyId和AccessSecretKey。AccessKeyId和Acc
HDFS目录配额(quota)不足导致写文件失败
本文分享自天翼云开发者社区《》,作者:5m问题背景与现象给某目录设置quota后,往目录中写文件失败,出现如下问题“TheDiskSpacequotaof/tmp/tquota2isexceeded”。omm@18939150115client$hdf
PostgreSQL:psql 介绍
本文分享自天翼云开发者社区《》,作者:周平psql命令是与PostgreSQL服务器交互的客户端程序,要登录到数据库服务器,需要使用psql客户端工具或者第三方客户端工具如PostgreSQLforNavicat,pgAdmin,Visualizer等等。
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
859
粉丝
16
获赞
40