栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

入坑fstack(二):fstack性能测试(1):fstack环境搭建

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

入坑fstack(二):fstack性能测试(1):fstack环境搭建

一、环境描述

系统版本:Linux ubuntu 4.4.0-186-generic #216-Ubuntu SMP Wed Jul 1 05:34:05 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

安装环境:虚拟机vmware

网卡信息:

        对外网卡(ens0):网卡82540EM Gigabit Ethernet Controller 驱动e1000 * 1张

        对外网卡作用:提供一个ip地址,供ssh远程操作

        内部网卡(ens32 ens33):网卡82540EM Gigabit Ethernet Controller 驱动e1000 * 2张

        内部网卡作用:两张网卡分别充当客户端发包网卡和服务端收包网卡

二、fstack部署

1.项目包下载

        mkdir /data/f-stack

        git clone https://github.com/F-Stack/f-stack.git /data/f-stack

2.下载依赖

        编译fstack需要保证linux环境联网,执行如下命令

        apt-get install git gcc openssl libssl-dev linux-headers-$(uname -r) bc libnuma1 libnuma-dev libpcre3 libpcre3-dev zlib1g-dev python

3.编译DPDK

        cd /data/f-stack/dpdk/tools

        ./dpdk-setup.sh

        Compile with x86_64-native-linuxapp-gcc

4.大页内存设置

        我的环境是CPU是NUMA架构,大页内存配置如下

        echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

        echo 1024 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages

        挂载大页并保证重启后可以自动挂载

        mkdir /mnt/huge

        mount -t hugetlbfs nodev /mnt/huge

        把"nodev /mnt/huge hugetlbfs defaults 0 0"添加到/etc/fstab文件末尾

5.网卡操作

        1)安装dpdk驱动

                modprobe uio

                insmod /data/f-stack/dpdk/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko

                insmod /data/f-stack/dpdk/x86_64-native-linuxapp-gcc/kmod/rte_kni.ko carrier=on

        2)网卡配置

                python dpdk-devbind.py --status 查询当前系统可被dpdk接管的网卡

                ifconfig ens33 down 停止ens33网卡

                python dpdk-devbind.py --bind=igb_uio eth33 # assuming that use 10GE NIC and         eth33 绑定ens33作为dpdk网卡

5.设置环境变量并编译fstacklib

        export FF_PATH=/data/f-stack 【fstack环境变量】

        export FF_DPDK=/data/f-stack/dpdk/x86_64-native-linuxapp-gcc 【fstack环境变量】

        export DPDK_SDK=/data/f-stack/dpdk/    【dpdk环境变量】

        export DPDK_TARGET=/data/f-stack/dpdk/x86_64-native-linuxapp-gcc 【dpdk环境变量】

        cd /data/f-stack/lib/

        make

6.编译dpdk确包dpdk安装成功

        cd /data/f-stack/dpdk/examples/helloworld/

        make

        cd build

        ./helloworld

        我的机器是24核的CPU,所以运行后的结果如下

        

         

        看到此结果证明,dpdk已安装成功

        记录一个小问题

        

        暂时未确认此问题的原因,后续会继续调试

6.编译运行fstack的helloworld程序

        cd /data/f-stack/dpdk/examples/helloworld/

        make

        在fstack目录提供了启动脚本

        cd /data/f-stack/

        ./start.sh

        启动后显示如下:

        

        上图说明:指定配置文件为config.ini,指定启动进程为主进程

        

        上图说明:dpdk相关配置,端口0配置

        

         上图说明:freebsd协议栈配置

        

         上图说明:与dpdk的demo启动现象相同,上图显示的是dpdk启动的打印

        

         上图说明:同样的,dpdk启动的错误提示也相同,这个错误后面写客户端服务端demo时继续调试

        

        上图说明:dpdk创建mbuf、ring

        

        上图说明:看见上图打印后,fstack的port 0即启动成功,f-stack-0的mac地址也能显示

        如果只启动一个端口0作为服务端程序,那么此时继续配置nginx即可以提供服务,但我的

        需求是双端口收发包,所以需要继续调试

 6.fstack的工具安装

        cd /data/f-stack/tools

        make

7.下一小节目标

        ens32作为port0,充当fstack的tcp连接client,

        ens33作为port1,充当fstack的tcp连接server,

        参考fstack已有demo,写一个客户端服务端程序

 

 

        

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/460165.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号