飞腾平台虚拟机组播性能调优指南

 【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧

image.png

本文分享至飞腾开发者平台《飞腾平台虚拟机组播性能调优指南》

1 介绍

  组播技术是IP网络数据传输三种方式之一,是介于单播和广播之间的数据传输方式。满足将信息从源主机发送至网络中多个目标主机要求,同时解决了单播和广播方式效率低的问题。

  在虚拟化、云平台盛行的时代,网络的性能成为躲避不掉的话题。在一些需要高精度、高时效性的组播环境下,对于网络性能的要求就更加严格。目前对于解决虚拟机中组播性能的方案还存在空白点,影响虚拟机中组播性能的因素有较多,本文介绍如何提升虚拟机组播的性能。

  以上关于组播技术的介绍,参考链接:http://www.xjishu.com/zhuanli/62/202110764857.html

2 优化策略环境要求

2.1 宿主机环境

  宿主机环境要求如下表所示。

项目说明
机器类型FT-2000+/64服务器
网络Intel Corporation I350 Ethernet Controller
操作系统centos7.5
内核版本4.19.109

2.2 虚拟机环境

虚拟机环境要求如下表所示。

项目说明
机器类型FT-2000+/64服务器
网络SRIOV
操作系统centos7.5
内核版本4.14.0-49.el7a.aarch64

2.3 背景

  组网示意图如图所示。中间节点默认组播转发性能很低,大约50Mbps的组播转发性能,为了达到680Mbps的组播转发性能,需要使用多方面的调优方法。

image.png

3 优化思路

优化项优化思路
SRIOV技术透访使用SRIOV技术透访VF给虚拟机
使用大页内存宿主机分配大页内存
核绑定将虚拟机vcpu与物理cpu绑定
UDP缓存增大内核协议栈udp缓存大小
网卡中断调整网卡接收软中断

4 调优步骤

4.1 宿主机

4.1.1 配置SR-IOV网卡

  原理:SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV 标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的I/O性能。

  关于SR-IOV技术的详细介绍,参考链接:https://blog.csdn.net/junbaozi/article/details/125417368

  优化方法:

lshw -c network -businfo

echo 1 \> /sys/bus/pci/devices/0000\\:05\\:00.1/sriov_numvfs

virsh nodedev-detach pci_0000_05_10_1//分割设备,网卡的虚拟口都要分离才能起虚拟机

4.1.2 设置大页

  原理:简单来说就是通过增大操作系统页的大小来减小页表,这样大页内存TLB miss很少,缺页中断也很少,极高的提高了性能。

优化方法:

//查看支持的大页尺寸和大页是否开启

cat /proc/meminfo \| grep Huge

//分配大页

echo 128 \> /sys/kernel/mm/hugepages/hugepages-524288kB/nr_hugepages

//挂载大页

mount -t hugetlbfs nodev /mnt/huge

4.2 虚拟机

4.2.1 虚拟机核绑定

  原理:虚拟vcpu绑定到物理CPU,减少核间切换带来的影响,提升程序运行性能。

  关于具体绑核方法可参考链接:https://support.huaweicloud.com/tngg-kunpengcpfs/kunpengkvm_05_0008.html

  优化方法:虚拟16个vcpu,每个vcpu绑定到对应的一个物理cpu。虚拟机的xml内容如下:

<cputune>

<vcpupin vcpu='0' cpuset='0'/>

<vcpupin vcpu='1' cpuset='1'/>

<vcpupin vcpu='2' cpuset='2'/>

<vcpupin vcpu='3' cpuset='3'/>

<vcpupin vcpu='4' cpuset='4'/>

<vcpupin vcpu='5' cpuset='5'/>

<vcpupin vcpu='6' cpuset='6'/>

<vcpupin vcpu='7' cpuset='7'/>

<vcpupin vcpu='8' cpuset='8'/>

<vcpupin vcpu='9' cpuset='9'/>

<vcpupin vcpu='10' cpuset='10'/>

<vcpupin vcpu='11' cpuset='11'/>

<vcpupin vcpu='12' cpuset='12'/>

<vcpupin vcpu='13' cpuset='13'/>

<vcpupin vcpu='14' cpuset='14'/>

<vcpupin vcpu='15' cpuset='15'/>

<emulatorpin cpuset='0-15'/>

</cputune>

4.2.2 透访VF

  原理:把通过SR-IOV虚拟的VF透访给虚拟机使用,虚拟机能直接访问PCIE网卡资源,提升网络性能。

  优化方法:

<hostdev mode='subsystem' type='pci' managed='yes'>

<source>

<address domain='0x0000' bus='0x09' slot='0x10' function='0x0'/>

</source>

</hostdev>

4.2.3 增加大页

  原理:配置虚拟机使用大页内存,提升虚拟机运行的性能。

  虚拟机使用大页可参考链接:https://support.huaweicloud.com/tngg-kunpengcpfs/kunpengkvm_05_0012.html

  优化方法:

<memoryBacking>

    <hugepages>

        <page size='524288' unit='KiB'/>

    </hugepages>

</memoryBacking>

4.2.4 增大udp缓存

  原理:因为CPU并发执行,当速率较高时候,报文可能因为缓冲区溢出而导致丢包,适当调整UDP的接收和发送缓存,从而提升网络的性能。

  优化方法:

//增加udp的接收缓存

echo 22937600\> /proc/sys/net/core/rmem_default

echo 22937600\> /proc/sys/net/core/rmem_max

cat /proc/sys/net/core/rmem_default

cat /proc/sys/net/core/rmem_max

//增加udp的发送缓存

echo 22937600 \> /proc/sys/net/core/wmem_default

echo 22937600 \> /proc/sys/net/core/wmem_max

4.2.5 网卡软中断调优

  原理:因为intel i350虚拟VF只支持单队列,导致数据包处理负载不均衡。RPS全称是Receive Packet Steering,其原理是单纯地以软件方式实现接收的报文在cpu之间平均分配,从而提升网络性能。

  优化方法:

//调整网卡接收软中断,如调优接口enp5s0的rx-0队列相应参数

echo ffff \> /sys/class/net/enp5s0/queues/rx-0/rps_cpus

echo 32768 \> /sys/class/net/enp5s0/queues/rx-0/rps_flow_cnt

echo 32768 \> /proc/sys/net/core/rps_sock_flow_entries

//调整网卡发送软中断,如调优接口enp5s0的tx-0队列相应参数

echo 7fff \> /sys/class/net/enp4s0/queues/tx-0/xps_cpus

推荐阅读

  • 基于飞腾腾云S2500的ATS部署及调优指南(反向代理篇)
  • SPECweb2009调优指南

欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料

如开发者在使用飞腾产品有任何问题可通过在线工单联系我们


版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/789859.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【45 Pandas+Pyecharts | 去哪儿海南旅游攻略数据分析可视化】

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 日期处理&#xff0c;提取年份、月份2.4 经费处理2.5 天数处理 &#x1f3f3;️‍&#x1f308; 3. Pyecharts数据可视化3.1 出发日期_…

Vatee万腾平台:智慧生活的无限可能

在科技日新月异的今天&#xff0c;我们的生活正被各种智能技术悄然改变。从智能家居到智慧城市&#xff0c;从个人健康管理到企业数字化转型&#xff0c;科技的力量正以前所未有的速度渗透到我们生活的每一个角落。而在这场智能革命的浪潮中&#xff0c;Vatee万腾平台以其卓越的…

【想要了解Anaconda介绍、安装配置及使用,看这篇文章就够了】

一、Anaconda介绍及安装配置 1、Anaconda简介 Anaconda是一个用于科学计算的 Python 发行版&#xff0c;支持 Linux, Mac, Windows, 包含conda、Python等190多个科学包及其依赖项。它便于获取和管理包&#xff0c;包括python和许多常用软件库&#xff08;如numpy、pandas等&a…

数据库基础练习4

准备 create table dept (dept1 int ,dept_name varchar(11)) charsetutf8; create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int) charsetutf8;insert into dept values(101,财务),(102,销售),(103,IT技术),(104,行政);INSERT …

如何分辨AI生成的内容?AI生成内容检测工具对比实验

检测人工智能生成的文本对各个领域的组织都提出了挑战&#xff0c;包括学术界和新闻界等。生成式AI与大语言模型根据短描述来进行内容生成的能力&#xff0c;产生了一个问题&#xff1a;这篇文章/内容/作业/图像到底是由人类创作的&#xff0c;还是AI创作的&#xff1f;虽然 LL…

前端面试题(CSS篇六)

一、浏览器如何判断是否支持 webp 格式图片 &#xff08;1&#xff09;宽高判断法。通过创建image对象&#xff0c;将其src属性设置为webp格式的图片&#xff0c;然后在onload事件中获取图片的宽高&#xff0c;如果能够获取&#xff0c;则说明浏览器支持webp格式图片。如果不能…

随身WiFi市场乱象横生,随身WiFi测评最好的格行随身WiFi如何引领变革?

在当今随身WiFi市场乱象频发、内卷严重的背景下&#xff0c;消费者对于产品的性能与商家是否会后台割韭菜依旧存疑&#xff0c;尤其是“随身WiFi到底卡不卡&#xff1f;”的问题&#xff0c;成为了广大消费者关注的重点。然而&#xff0c;在众多品牌中&#xff0c;格行随身WiFi…

DSVPN综合实验(NHRP之shortcut模式,证书认证模式)

一、实验目的 通过NAT设备将内网地址映射至外网&#xff0c;在站点间构建VPN隧道&#xff0c;认证方式分别使用预配置密码和证书两种方式实现 二、基础配置 &#xff08;一&#xff09;如图所示配置接口地址&#xff0c;在R1上将FW1地址映射至外网 [R1-GigabitEthernet0/0/1…

Geoserver源码解读六 插件

系列文章目录 Geoserver源码解读一 环境搭建 Geoserver源码解读二 主入口 Geoserver源码解读三 GeoServerBasePage Geoserver源码解读四 REST服务 Geoserver源码解读五 Catalog Geoserver源码解读六 插件&#xff08;怎么在开发模式下使用&#xff09; 目录 系列文章目…

NodeJS小饰品销售管理系统-计算机毕业设计源码21597

摘 要 在当今的数字化时代&#xff0c;电子商务已经成为了商业领域中不可或缺的一部分。随着消费者对于购物体验的要求越来越高&#xff0c;一个高效、便捷、用户友好的小饰品销售管理系统显得尤为重要。 本系统旨在利用 JavaScript 技术&#xff0c;设计并实现一个功能强大的小…

idea控制台乱码问题解决教程

注&#xff1a;按顺序来操作&#xff0c;完成后要重启软件 方案一&#xff1a;修改Tomcat的编码设置 在Tomcat的VM options中添加了-Dfile.encodingUTF-8 方案二&#xff1a;修改IDEA的编码设置 File->Settings->Editor->File Encodings 将Global Encoding、Proj…

智汇园区:为园区企业注入前沿技术与人才活力

在日新月异的时代浪潮中&#xff0c;树莓集团深知人才是企业发展的核心驱动力&#xff0c;更是推动产业升级与创新的关键要素。因此&#xff0c;我们致力于构建全方位的人才引进与培养体系&#xff0c;为园区企业输送源源不断的前沿技术与人才支持。 【人才引进&#xff1a;汇聚…

最适合mysql5.6安装的linux版本-实战

文章目录 一, 适合安装mysql5.6的linu版本1. CentOS 72. Ubuntu 14.04 LTS (Trusty Tahr)3. Debian 8 (Jessie)4. Red Hat Enterprise Linux (RHEL) 7 二, 具体以Ubuntu 14.04 LTS (Trusty Tahr)为例安装虚拟机安装Ubuntu 14.04 LTS (Trusty Tahr) 自己弄安装ssh(便于远程访问,…

【STM32学习】cubemx配置,串口的使用,串口发送接收函数使用,以及串口重定义、使用printf发送

1、串口的基本配置 选择USART1&#xff0c;选择异步通信&#xff0c;设置波特率 选择后&#xff0c;会在右边点亮串口 串口引脚是用来与其他设备通信的&#xff0c;如在程序中打印发送信息&#xff0c;电脑上打开串口助手&#xff0c;就会收到信息。 串口的发送接收&#xff0…

短剧cps分销系统搭建开发,搭建专属于自己的分销系统

前言&#xff1a; 短剧项目是目前非常火的一个互联网项项目。短剧CPS&#xff08;Cost Per Sale&#xff0c;即按照销售额付费&#xff09;分销系统涉及多个步骤&#xff0c;主要可以归纳为以下几个关键环节&#xff1a; 1. 获取源码&#xff1a; 你可以通过购买商业源码、使…

python怎么求因数

要想做到python语言求因数方法&#xff0c;首先要明白其中的原理&#xff1a; 1、对由123456789这九个数字组成的9位数进行分解质因数。 2、1234576982x3x3x7x13x23x29x113&#xff0c;所以他的值因数是113。 3、总共有362880种可能&#xff0c;从中找出值因数中最小的数字和…

react基础语法,模板语法,ui渲染,jsx,useState状态管理

创建一个react应用 这里使用create-react-app的脚手架构建项目&#xff08;结构简洁&#xff0c;基于webpack-cli&#xff09;&#xff0c; npx create-react-app [项目名称] 使用其他脚手架构建项目可以参考&#xff1a;react框架&#xff0c;使用vite和nextjs构建react项目…

品牌策划必读:9本改变游戏规则的营销经典

作为深耕品牌十余年的策划人&#xff0c;这些年自学啃下的书不计其数。 这里特意挑选了几本知名度不高但是却非常有用的“遗珠”优质品牌策划书籍分享出来。 如果你是一位初步了解品牌的人&#xff0c;这些书籍既包含了品牌理论基础&#xff0c;也有实用的实践指导。 这些书…

振弦采集仪在大型工程安全监测中的作用与意义

振弦采集仪在大型工程安全监测中的作用与意义 河北稳控科技振弦采集仪是一种用于测量振动频率的仪器&#xff0c;常用于大型工程的安全监测中。它通过采集振弦的振动信号&#xff0c;可以对工程结构的振动特性进行实时监测和分析。振弦采集仪在大型工程安全监测中具有重要的作…

深入理解Python密码学:使用PyCrypto库进行加密和解密

深入理解Python密码学&#xff1a;使用PyCrypto库进行加密和解密 引言 在现代计算领域&#xff0c;信息安全逐渐成为焦点话题。密码学&#xff0c;作为信息保护的关键技术之一&#xff0c;允许我们加密&#xff08;保密&#xff09;和解密&#xff08;解密&#xff09;数据。P…