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

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

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和其他飞腾商标均为飞腾信息技术有限公司的商标。

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

注意

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

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

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

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

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

相关文章

网优学习干货:xx5G速率优化现场实战版

速率概述 无线网络仍然是5G网络能力最容易受限的环节&#xff0c;无线网络技术的应用将最终决定5G网络能力的木桶深度。移动通信中传统关键技术在5G将会继续使用。5G NR在继承了LTE原有部分技术基础上&#xff0c;采用了一些技术演进和新技术创新。比如NR继承了LTE的OFDM和SC-…

内网安全:权限维持的各种姿势

1.Linux权限维持 2.Windows权限维持 目录&#xff1a; 一.Linux权限维持&#xff1a; 1.webshell&#xff1a; 2.定时任务&#xff1a; 3.SUID后门&#xff1a; 4.SSH Key免密登录后门&#xff1a; 5.添加用户后门&#xff1a; 二.Windows权限维持 1.计划任务后门&…

活用 localStorage

我维护的这款工具 https://editor.yunwow.cn/ 已经帮我写了 7 篇文章了&#xff0c; 用起来很顺手&#xff0c;因此我打算再给它升级下让它更方便&#xff0c;我决定要给它加个本地缓存功能。我给它提的要求是&#xff1a; 1. 至少能缓存 5 篇文章 2. 能有选择的加载模板 3…

C语言:指针详解(4)

作者本人由于大一下学期事情繁多&#xff0c;大部分时间都在备赛&#xff0c;没有时间进行博客撰写&#xff0c;如今已经到了暑假时间&#xff0c;作者将抓紧每一天的时间进行编程语言的学习&#xff0c;由于目前作者已经进行到了C的学习&#xff0c;C语言阶段的学习与初阶数据…

QT之嵌入外部第三方软件到本窗体中

一、前言 使用QT开发&#xff0c;有时需要调用一些外部程序&#xff0c;但是单独打开一个外部窗口有的场合很不合适&#xff0c;最好是嵌入到开发的QT程序界面中。还有就是自己开发的n个程序&#xff0c;一个主程序托n个子程序&#xff0c;为了方便管理将各个程序独立&#xf…

JMeter CSV 参数文件的使用教程

在 JMeter 测试过程中&#xff0c;合理地使用参数化技术是提高测试逼真度的关键步骤。本文将介绍如何通过 CSV 文件实现 JMeter 中的参数化。 设定 CSV 文件 首先&#xff0c;构建一个包含需要参数化数据的 CSV 文件。打开任何文本编辑器&#xff0c;输入希望模拟的用户数据&…

烟雾识别技术在火灾预防中的应用:思通数科大模型的力量

引言 火灾是导致生命财产损失的重大灾害之一。早期检测和快速响应是预防火灾和减少损失的关键。结合思通数科大模型的烟雾识别技术&#xff0c;为实时检测和精确定位烟雾来源提供了一种高效的解决方案。本文将探讨这一技术如何有效预防火灾并保障人员安全。 烟雾识别技术概述 …

Transformer——多头注意力机制(Pytorch)

1. 原理图 2. 代码 import torch import torch.nn as nnclass Multi_Head_Self_Attention(nn.Module):def __init__(self, embed_size, heads):super(Multi_Head_Self_Attention, self).__init__()self.embed_size embed_sizeself.heads headsself.head_dim embed_size //…

Shiro550反序列化漏洞分析

shiro搭建教程可以在网上自行搜索 漏洞发现 进入shiro界面后&#xff0c;burp抓包&#xff0c;选择remember me并进行登录。观察burp抓到的包 登录之后服务器返回一个Cookie Remember me 之后用户的访问都带着这个Cookie 这个Cookie很长&#xff0c;可能会在里面存在一定的信…

springboot增加过滤器后中文乱码

记录一下小问题 public class RepeatableHttpServletWrapper extends HttpServletRequestWrapper {private byte[] body;public RepeatableHttpServletWrapper(HttpServletRequest request) throws IOException {super(request);request.setCharacterEncoding("UTF-8&q…

数据建设实践之大数据平台(一)准备环境

大数据组件版本信息 zookeeper-3.5.7hadoop-3.3.5mysql-5.7.28apache-hive-3.1.3spark-3.3.1dataxapache-dolphinscheduler-3.1.9大数据技术架构 大数据组件部署规划 node101node102node103node104node105datax datax datax ZK ZK ZK RM RM NM

Git的命令使用与IDEA内置git图形化的使用

Git 简介 Git 是分布式版本控制系统&#xff0c;它可以帮助开发人员跟踪和管理代码的更改。Git 可以记录代码的历史记录&#xff0c;并允许您在不同版本之间切换。 通过历史记录可以查看&#xff1a; 进行了哪些更改&#xff1f;谁进行了更改&#xff1f;何时进行了更改&#…

nodejs模板引擎(二)

虽然Jade现在已经被更名为Pug&#xff0c;但它的使用方式并没有太大的改变。下面是如何在Node.js中使用Pug&#xff08;原Jade&#xff09;模板引擎的基本步骤&#xff1a; 1. 安装 Pug 首先&#xff0c;你需要安装Pug模块。在你的项目目录中&#xff0c;使用npm来安装&#…

gradle 和 java 版本对应关系

文章目录 gradle 和 java 版本对应关系原地址 gradle 和 java 版本对应关系 原地址 https://docs.gradle.org/current/userguide/compatibility.html#compatibility

超市暑期(7-8月)生鲜之蔬果商品及营销操作建议!

生鲜经营的思路现在越来越被重视&#xff0c;越来越做的更精细化&#xff0c;营销方法和手段越来越多&#xff0c;如何正确地运用好营销策略&#xff0c;如何做到这个季节的生鲜经营既能保持新鲜&#xff0c;又能保持盈利呢&#xff1f; 7-8月份蔬菜重点商品及季节性商品 叶菜…

无人驾驶大热,新能源汽车智能化中的算网支持

来源新华社&#xff1a;百度“萝卜快跑”全无人驾驶汽车行驶在路上 当前&#xff0c;新能源汽车产业数智化已成为全球汽车产业数字化转型的焦点。一方面&#xff0c;随着人工智能、大数据、云计算等技术的深度融合&#xff0c;新能源汽车在自动驾驶、智能互联、能源管理等方面…

从零设计一个神经网络:实现手写数字识别

前言 为了能够更好的理解神经网络&#xff0c;从手写数字识别这个小任务来逐层弄清楚神经网络的工作原理以及一般流程是非常合适的。 这篇文章就来手写完成一个数字识别的任务&#xff0c;来说明如何设计、实现并训练一个标准的前馈神经网络&#xff0c;以期对神经网络有一个…

AI编程助手-Tabnine的使用体验

文章目录 一&#xff0c;安装使用1&#xff0c;VSCode安装Tabnine插件2&#xff0c;使用 三&#xff0c;Tabnine的工作原理1&#xff0c;深度学习的力量2&#xff0c;注意事项&#xff1a;最大化Tabnine的效能 在编程的世界里&#xff0c;每一行代码都承载着创造者的智慧与汗水…

ubuntu安装YOLOV8环境

文章目录 前言 前言 ubuntu20.04 使用vmware虚拟机 1、安装python sudo apt-get install python3 python3-pip2&#xff0c;安装虚拟环境 sudo apt install python3.8-venv3&#xff0c;创建虚拟环境 python3 -m venv yolov8-env4&#xff0c;进入虚拟环境 source yolov8…

测试人必会 K8S 操作之 Dashboard

在云计算和微服务架构的时代&#xff0c;Kubernetes (K8S) 已成为管理容器化应用的标准。然而&#xff0c;对于许多新手来说&#xff0c;K8S 的操作和管理常常显得复杂而神秘。特别是&#xff0c;当你第一次接触 K8S Dashboard 时&#xff0c;你是否也感到有些无所适从&#xf…