R系组播调优方案

news2025/1/17 14:11:19
  • 修改/etc/sysctl.conf添加如下内容:

  Vim    /etc/sysctl.con

net.ipv4.ip_forward=1

net.ipv4.ip_nonlocal_bind=1

net.ipv4.conf.all.rp_filter=0

net.ipv4.conf.default.rp_filter=0

net.bridge.bridge-nf-call-arptables = 0

net.bridge.bridge-nf-call-ip6tables = 0

net.bridge.bridge-nf-call-iptables = 0

net.ipv4.tcp_syncookies=1

net.ipv4.ip_local_port_range=1024 65535

net.ipv4.tcp_fin_timeout=30

net.ipv4.tcp_timestamps=1

net.ipv4.tcp_tw_recycle=0

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_max_tw_buckets=262144

net.ipv4.tcp_max_orphans=3276800

net.ipv4.tcp_max_syn_backlog=819200

net.ipv4.tcp_keepalive_intvl=30

net.ipv4.tcp_keepalive_probes=3

net.ipv4.tcp_keepalive_time=1200

net.ipv4.udp_mem=945000000 9150000000 9270000000

net.ipv4.udp_rmem_min=409600

net.ipv4.udp_wmem_min=409600

net.netfilter.nf_conntrack_tcp_timeout_established=600

net.netfilter.nf_conntrack_max=655350

net.core.netdev_max_backlog=500000

net.core.somaxconn=65535

net.core.rmem_default=83886080

net.core.wmem_default=83886080

net.core.rmem_max=167772160

net.core.wmem_max=167772160

net.ipv4.tcp_mem=94500000 915000000 927000000

net.ipv4.tcp_rmem=4096 87380 16777216

net.ipv4.tcp_wmem=4096 16384 16777216

net.ipv4.tcp_thin_dupack=1

net.ipv4.tcp_thin_linear_timeouts=1

net.unix.max_dgram_qlen=3000

kernel.panic=1

kernel.core_pattern=core_%e

kernel.sysrq=0

kernel.msgmax=65535

kernel.msgmnb=65535

kernel.shmmax=30923764530

kernel.shmall=7549746

kernel.watchdog_thresh = 30

vm.panic_on_oom=1

vm.min_free_kbytes=1048576

vm.swappiness=20

fs.inotify.max_user_watches=8192000

fs.aio-max-nr=1048576

fs.file-max=1048575

kernel.hung_task_panic = 0

kernel.hung_task_timeout_secs = 600

二、修改系统资源配置文件 /etc/security/limits.conf 文件添加如下内容:

root            soft    core            1000

root            hard    core            unlimited

root          soft     nofile       655350

root          hard   nofile       655350

root          soft     nproc       655350

root          hard   nproc       655350

root            soft    memlock         unlimited

root            hard    memlock         unlimited

root            soft    stack           unlimited

root            hard    stack           unlimited

root            soft    sigpending      1024000

root            hard    sigpending      1024000

  • 修改cpu工作模式,需要调整到高性能模式
  1. 执行xx.sh脚本 开启高性能模式 ,脚本内容如下:

Sh  ./xx.sh

for i in `cat /proc/cpuinfo |grep process | awk '{print $3}'`

do

  echo performance > /sys/devices/system/cpu/cpu$i/cpufreq/scaling_governor

done

2.执行xxx.sh 脚本 调整CPU状态,脚本内容如下

Sh  ./xxx.sh

#!/bin/bash

i=0

j=1

CPU_NUM=`cat /proc/cpuinfo |grep MHz |wc -l`

while [ $i -lt $CPU_NUM ]

do

 j=1

 while [ $j -lt 4 ]

 do

echo 1 > /sys/devices/system/cpu/cpu$i/cpuidle/state$j/disable

 j=`expr $j + 1`

 done

 i=`expr $i + 1`

 done

  • 如果是万兆网卡会需要安装网卡驱动 以下以Intel 82599芯片网卡类型演示安装网卡驱动
  1. inter官网下载网卡驱动源码包。此处用到的网卡驱动包版本为ixgbe-5.3.7
  2. 解压缩驱动包 

 tar xf ixgbe-5.3.7.tar.gz

  1. 进入解压之后的目录里的src目录  

 cd    ixgbe-5.3.7/src

  1. 编译安装  

 make && make install

  1. 重新生成initramfs文件 

cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img_bak

dracut /boot/initramfs-$(uname -r).img  $(uname -r)  --force

  1. 重新加载 ixgbe 模块

rmmod  ixgbe

Modprobe  ixgbe

加载完之后可以通过  ethtool -i  xxx (网卡名)  命令查看驱动是否安装成功

  1. 重启网卡服务

      systemctl restart network

  • 修改网卡缓冲区以及网卡多队列

  ethtool -G  ens106  rx 4096 tx 4096

  ethtool -L  ens106   combined 1

ens106 具体的某块网卡名,一般我们会给当前所有的网卡缓冲区和队列都统一修改,使用以下命令即可:

for i in `ifconfig  |grep RUNNING |grep -v lo|grep -v bond |awk -F :  '{print $1}'`;do

        ethtool -G $i rx 4096 tx 4096;

        ethtool -L $i combined 1;

done

  • 绑核方法说明:

taskset  -c  12(此处为cpu号)    ./xxxx  (此处为需要绑核的脚本或命令)

例如:

taskset  -c 16   ./udptest

  • 组播需要用到的交换机配置

  

  • 已有的组播测试结果记录

   浪潮服务器:

硬件环境:服务器:NF5280M5  cpu型号:Inter Xeon Gold 6154@3.10Ghz 网卡芯片:82599

系统环境为:Kylin-4.0.2-server-sp2-18072308.ZJ2-x86_64-2018-07-20

内核版本为:3.10.0-862

经过调优后:稳定性测试100小时可以跑到4.1G流量丢包率在10的负7次方以下

极限测试10分钟可以跑到7.1G流量不丢包

华为服务器:

硬件环境:服务器:2288Hv5  cpu型号:Inter Xeon Gold 6154@3.10Ghz 网卡芯片:82599

系统环境为:Kylin-4.0.2-server-sp2-18072308.ZJ2-x86_64-2018-07-20

内核版本为:3.10.0-862

经过调优后:稳定性测试100小时可以跑到4.1G流量丢包率在10的负7次方以下

极限测试10分钟可以跑到8.0G流量不丢包

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

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

相关文章

ChatGLM3 langchain_demo 代码解析

ChatGLM3 langchain_demo 代码解析 0. 背景1. 项目代码结构2. 代码解析2-1. utils.py2-2. ChatGLM3.py2-3. Tool/Calculator.py2-4. Tool/Weather.py2-5. main.py 0. 背景 学习 ChatGLM3 的项目内容,过程中使用 AI 代码工具,对代码进行解释,…

uniapp——项目02

分类 创建cate分支 渲染分类页面的基本结构 效果页面,包含左右两个滑动区. 利用提供的api获取当前设备的信息。用来计算窗口高度。可食用高度就是屏幕高度减去上下导航栏的高度。 最终效果: 每一个激活项都特殊背景色,又在尾部加了个红条一样的东西。 export d…

运动耳机推荐,运动耳机哪个牌子好性价比高?哪个运动耳机好?

​无论你是喜欢户外跑步,还是喜欢室内健身,运动耳机都能为你提供强大的音乐动力,帮助你更好地享受运动的过程,边流汗边听歌太畅快了!因此。想了解哪个品牌的运动耳机更适合自己,就来看看我发布的这篇文章吧…

Python 使用tkinter的Text文本域实时显示光标位置

在Python tkinter中,可以使用Text widget的index()方法来获取实时光标的行和列。该方法接受一个字符串参数,用于指定要获取的索引位置,例如"insert"表示当前光标位置。 重难点:想要获取准确的光标位置,需要…

ffmpeg安装教程(windows、Linux下python环境)

本文旨在向大家介绍ffmpeg在Windows和Linux系统中的安装方法。 目录 一、Windows 安装 ffmpeg1.1 官网下载 ffmpeg 运行程序1.2 环境配置1.3 测试 二、Linux 安装ffmpeg2.1 Linux中安装ffmpeg2.2 python环境安装 ffmpeg2.1.1 为什么要介绍这个2.1.1 成功安装示例 一、Windows …

【Linux】语言层面缓冲区的刷新问题以及简易模拟实现

文章目录 前言一、缓冲区刷新方法分类a.无缓冲--直接刷新b.行缓冲--不刷新,直到碰到\n才刷新c.全缓冲--缓冲区满了才刷新 二、 缓冲区的常见刷新问题1.问题2.刷新本质 三、模拟实现1.Mystdio.h2.Mystdio.c3.main.c 前言 我们接下来要谈论的是我们语言层面的缓冲区&…

【扩散模型】万字长文全面理解与应用Stable Diffusion

万字长文全面理解与应用Stable Diffusion 1. Stable Diffusion简介1.1 基本概念1.2 主体结构1.3 训练细节1.4 模型评测1.5 模型应用1.6 模型版本1.7 其他类型的条件生成模型1.8 使用DreamBooth进行微调 2. 实战Stable Diffusion2.1 环境准备2.2 从文本生成图像2.3 Stable Diffu…

GPT4 Turbo 究竟更新了什么

GPT4 Turbo 究竟更新了什么 记忆力和上下文理解能力增强 现在的GPT4可以理解128K的文本,相当于几百页的内容,你的GPT4再也不会忘记你之前说的什么了,换句话说之前他只能记住一篇文章,而现在可以记住一整本书的内容了 API降价 输入…

多个div横向排列的几种方法

以下面这组 div 为例&#xff0c;group的高度由内容撑开 <div id"group"><div id"div1">div1</div><div id"div2">div2</div><div id"div3">div3</div> </div>显示结果如下为上下排…

dart packages 版本问题解决 和 对 pubspenc.lock 的深入了解

先讲讲我遇到的问题 在进行写项目的时候&#xff0c;我需要用到一个依赖 这个依赖是 3.0.0 版本的&#xff0c;但是实际上我本地的上存在多个版本 虽然我修改了 pubspenc.yaml 文件中需要的依赖&#xff0c;但是每次使用的还是 3.4.0 版本的依赖&#xff0c;但是我需要的是 3…

Linux 进程优先级 | 环境变量

目录 进程优先级 基本概念 认识优先级 PRI and NI NI值的范围 查看进程优先级 用top命令更改已存在进程的nice&#xff1a; 如何修改优先级 其他概念 环境变量 基本概念 常见环境变量 和环境变量相关的命令 环境变量的组织方式 通过代码如何获取环境变量 环境变量通…

减轻关键基础设施网络安全风险的 3 种方法

物理安全和网络安全之间存在相当大的重叠&#xff0c;特别是在保护关键基础设施方面。防止基础设施被篡改需要在物理安全方面进行大量投资&#xff0c;但任何连接到互联网的设备都代表着更广泛网络的潜在攻击点。 缺乏足够保护的设备可能会给这些对手在网络中提供立足点&#…

【数据结构】树与二叉树(十):二叉树的先序遍历(非递归算法NPO)

文章目录 5.2.1 二叉树二叉树性质引理5.1&#xff1a;二叉树中层数为i的结点至多有 2 i 2^i 2i个&#xff0c;其中 i ≥ 0 i \geq 0 i≥0。引理5.2&#xff1a;高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点&#xff0c;其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

【Java 进阶篇】Java Web 开发之 JQuery 快速入门

嗨&#xff0c;各位小伙伴们&#xff01;欢迎来到 Java Web 开发的继续学习之旅。在前面的博客中&#xff0c;我们学习了 Servlet、JSP、Filter、Listener 等基础知识&#xff0c;今天我们将进入前端领域&#xff0c;学习一下如何使用 JQuery 来简化和优化我们的前端开发。 1.…

学习c#的第五天

目录 C# 运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 C# 中的运算符优先级 C# 运算符 算术运算符 下表显示了 C# 支持的所有算术运算符。假设变量 A 的值为 10&#xff0c;变量 B 的值为 20&#xff0c;则&#xff1a; 运算符描述实例…

Python实战:绘制直方图的示例代码,数据可视化获取样本分布特征

文章目录 一、初步二、参数三、绘图类型四、多组数据直方图对比Python技术资源分享1、Python所有方向的学习路线2、学习软件3、精品书籍4、入门学习视频5、实战案例6、清华编程大佬出品《漫画看学Python》7、Python副业兼职与全职路线 一、初步 对于大量样本来说&#xff0c;如…

Lightgraph.js节点图引擎【低代码开发利器】

Lightgraph.js是一个 Javascript 节点图引擎库&#xff0c;可以实现类似虚幻引擎的蓝图编程&#xff0c;包括一个编辑器来构建和测试节点图&#xff0c;支持浏览器和Node.js&#xff0c;可以轻松集成到任何现有的 Web 应用程序中&#xff0c;并且无需编辑器即可运行节点图。 在…

vscode 和 keil协同使用开发stm32程序,超详细教程

vscode 和 keil协同使用开发stm32程序 文章目录 vscode 和 keil协同使用开发stm32程序1. 安装vscode拓展安装chinese插件 2 .安装Mingw3.配置环境变量4. 打开Keil项目 VSCODE 是一款广受好评的代码编辑器&#xff0c; KEIL 是常用的嵌入式开发工具但编程界面简陋。 将两个工具…

无人驾驶智能:两车居然可以“交流”

导读“这些智能车看着个子小小的&#xff0c;却有大用途&#xff0c;可以说是无人驾驶车的雏形……”昨日&#xff0c;在重庆大学光电工程学院内&#xff0c;记者看到了几辆个头不大的智能小车&#xff0c;是大学生自主设计的无人驾驶车的雏形。据悉&#xff0c;它们在8月26日结…

Java学习 9.Java-数组 讲解及习题

一、数组的定义与使用 1.数组的基本概念 1.1 为什么要使用数组 数组是最简单的一种数据结构 组织一组相同类型数据的集合 数据结构本身是来描述和组织数据的 数据加结构 1.2.1 数组的创建 代码实现 new int 可省略&#xff1b; char[] chars{a,b,c};//定义一个整形类型数…