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

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

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 -businfoecho 1 \> /sys/bus/pci/devices/0000\\:05\\:00.1/sriov_numvfsvirsh 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_defaultecho 22937600\> /proc/sys/net/core/rmem_maxcat /proc/sys/net/core/rmem_defaultcat /proc/sys/net/core/rmem_max//增加udp的发送缓存echo 22937600 \> /proc/sys/net/core/wmem_defaultecho 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_cpusecho 32768 \> /sys/class/net/enp5s0/queues/rx-0/rps_flow_cntecho 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和其他飞腾商标均为飞腾信息技术有限公司的商标。

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

注意

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32G4 DMA的使用(寄存器开发)

下面以STM32G474为例&#xff0c;使用DMA来存储USART1的接收数据。 1. 查看硬件支持 首先查看要使用的DMA支持的通道数&#xff0c;在手册中有如下说明。 根据上图可以看到&#xff0c;对于不同的设备类型有不同的DMA通道数量。设备类型分类如下图所示。 我使用的是STM32G474…

基于 TI AM62 测试 QtWayland 部署

By Toradex秦海 1). 简介 目前主流的 ARM 平台嵌入式 Linux BSP 的显示后端基本都已经从 X11 升级到了 Wayland&#xff0c; 而常用的 Wayland Compositor - Weston 对于 Linux 下常用的 Qt 图形界面开发框架的一些 Plugin (比如 Qt VirtualKeyboard) 的配合并不完善&#xf…

什么是边缘计算?创造一个更快、更智慧、更互联的世界

前言 如今&#xff0c;数十亿物联网传感器广泛部署在零售商店、城市街道、仓库和医院等各种场所&#xff0c;正在生成大量数据。从这些数据中更快地获得洞察&#xff0c;意味着可以改善服务、简化运营&#xff0c;甚至挽救生命。但要做到这一点&#xff0c;企业需要实时做出决策…

tableau标靶图,甘特图与瀑布图绘制 - 9

标靶图&#xff0c;甘特图与瀑布图 1. 标靶图绘制1.1 筛选器筛选日期1.2 条形图绘制1.3 编辑参考线1.4 设置参考线1.5 设置参考区间1.6 四分位设置1.7 其他标靶图结果显示 2.甘特图绘制2.1 选择列属性2.2 选择列属性2.3 创建新字段2.4 设置天数大小及颜色 3. 瀑布图绘制3.1 she…

【pytorch20】多分类问题

网络结构以及示例 该网络的输出不是一层或两层的&#xff0c;而是一个十层的代表有十分类 新建三个线性层&#xff0c;每个线性层都有w和b的tensor 首先输入维度是784&#xff0c;第一个维度是ch_out,第二个维度才是ch_in(由于后面要转置)&#xff0c;没有经过softmax函数和…

【利用GroundingDINO裁剪分类任务的数据集】及文本提示检测图像任意目标(Grounding DINO) 的使用

文章目录 背景1.Grounding DINO安装2.裁剪指定目标的脚本 背景 在处理公开数据集ImageNet-21k的时候发现里面有很多的数据有问题&#xff0c;比如&#xff0c;数据目标有很多背景&#xff0c;且部分类别有其他种类的图片。针对数据目标有很多背景&#xff0c;公开数据集ImageNe…

【数据库】Redis主从复制、哨兵模式、集群

目录 一、Redis的主从复制 1.1 主从复制的架构 1.2 主从复制的作用 1.3 注意事项 1.4 主从复制用到的命令 1.5 主从复制流程 1.6 主从复制实现 1.7 结束主从复制 1.8 主从复制优化配置 二、哨兵模式 2.1 哨兵模式原理 2.2 哨兵的三个定时任务 2.3 哨兵的结构 2.4 哨…

ArkUI开发学习随机——B站视频简介页面,美团购买界面

案例一&#xff1a;B站视频简介页面 代码&#xff1a; build() {Column(){Column(){Stack(){Image($r("app.media.genimpact")).width(200).height(125).borderRadius({topLeft:5,topRight:5})Row(){Image($r("app.media.bz_play")).height(24).fillColor…

【人工智能】Transformers之Pipeline(概述):30w+大模型极简应用

​​​​​​​ 目录 一、引言 二、pipeline库 2.1 概述 2.2 使用task实例化pipeline对象 2.2.1 基于task实例化“自动语音识别” 2.2.2 task列表 2.2.3 task默认模型 2.3 使用model实例化pipeline对象 2.3.1 基于model实例化“自动语音识别” 2.3.2 查看model与task…

IEC62056标准体系简介-4.IEC62056-53 COSEM应用层

为在通信介质中传输COSEM对象模型&#xff0c;IEC62056参照OSI参考模型&#xff0c;制定了简化的三层通信模型&#xff0c;包括应用层、数据链路层&#xff08;或中间协议层&#xff09;和物理层&#xff0c;如图6所示。COSEM应用层完成对COSEM对象的属性和方法的访问&#xff…

01MFC建立单个文件类型——画线

文章目录 选择模式初始化文件作用解析各初始化文件解析类导向创建鼠标按键按下抬起操作函数添加一个变量记录起始位置注意事项代码实现效果图虚实/颜色线选择模式 初始化文件作用解析 运行: 各初始化文件解析 MFC(Microsoft Foundation Classes)是一个C++类库,用于在Win…

防御课综合实验

实验拓扑&#xff1a; 实验要求&#xff1a; 1、DMZ区内的服务器&#xff0c;办公区仅能在办公时间内&#xff08;9点到18点&#xff09;可以访问&#xff0c;生产区的设备全天可以访问 2、生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3、办公区设备10…

二叉平衡树(左单旋,右单旋,左右双旋、右左双旋)

一、AVL树&#xff08;二叉平衡树&#xff1a;高度平衡的二叉搜索树&#xff09; 0、二叉平衡树 左右子树高度差不超过1的二叉搜索树。 public class AVLTree{static class AVLTreeNode {public TreeNode left null; // 节点的左孩子public TreeNode right null; // 节点的…

基于Transformer的端到端的目标检测 | 读论文

本文正在参加 人工智能创作者扶持计划 提及到计算机视觉的目标检测&#xff0c;我们一般会最先想到卷积神经网络&#xff08;CNN&#xff09;&#xff0c;因为这算是目标检测领域的开山之作了&#xff0c;在很长的一段时间里人们都折服于卷积神经网络在图像处理领域的优势&…

论文 | REACT: SYNERGIZING REASONING AND ACTING INLANGUAGE MODELS

本文首先认为&#xff0c;到目前为止&#xff0c;LLM 在语言理解方面令人印象深刻&#xff0c;它们已被用来生成 CoT&#xff08;思想链&#xff09;来解决一些问题&#xff0c;它们也被用于执行和计划生成。 尽管这两者是分开研究的&#xff0c;但本文旨在以交错的方式将推理…

JSP入门基础

JSP入门基础 软件开发环境这门课程的复习资料 Web开发技术概述 URL的组成部分 协议、主机DNS名或IP地址和文件名 Tomcat服务器 Tomcat服务器的默认端口号是8080 概念 软件开发环境是围绕着软件开发的一定目标而组织在一起的一组相关软件工具的有机集合 JSP和HTML的区别…

SPE连接器技术革新汽车制造业

概述 新的SPE标准在汽车制造业中的应用正日益受到重视&#xff0c;它不仅推动了汽车通信技术的革新&#xff0c;还对汽车性能测试方法产生了深远影响。本文将详细探讨SPE标准在汽车制造业中的应用案例分析&#xff0c;以及它对供应链的挑战与机遇。 SPE标准在汽车制造业中的应…

[leetcode]subarray-product-less-than-k 乘积小于K的子数组

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int numSubarrayProductLessThanK(vector<int>& nums, int k) {if (k 0) {return 0;}int n nums.size();vector<double> logPrefix(n 1);for (int i 0; i < n; i) {logPrefix[i 1] …

揭秘!chatGPT核心技术应用

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT-3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年11月7日&#xff0c;OpenAI首届开发者大会被称为“科技界的春晚”&#xff0c;吸引了全球广大…

prometheus回顾(2)--如何使用Grafana对接Prometheus数据源的详细过程,清晰易懂。

文章目录 Grafana简介什么是GrafanaGrafana 能做什么&#xff1f;什么时候我们会用到Grafana?Prometheus有图形化展示&#xff0c;为什么我们还要用Grafana? 环境操作步骤一、Grafana安装二、Grafana数据源Prometheus添加三、Grafana添加数据仪表盘补充、如何查找仪表盘 Graf…