当前位置: 首页 > article >正文

Linux: 调整套接字缓冲区大小相关内核参数

Linux: 调整套接字缓冲区大小相关内核参数

内核参数关于套接字缓冲区大小相关的设置,这些参数控制了TCP和UDP套接字的接收和发送缓冲区的最大值、默认值以及动态调整范围。

当前配置

net.core.rmem_max = 212992      # 最大接收缓冲区大小(字节)
net.core.wmem_max = 212992      # 最大发送缓冲区大小(字节)
net.core.rmem_default = 212992  # 默认接收缓冲区大小(字节)
net.core.wmem_default = 212992  # 默认发送缓冲区大小(字节)
net.ipv4.tcp_rmem = 4096        131072  6291456  # TCP接收缓冲区的最小、初始和最大值(字节)
net.ipv4.tcp_wmem = 4096        16384   4194304  # TCP发送缓冲区的最小、初始和最大值(字节)

参数解释

  1. net.core.rmem_maxnet.core.wmem_max:

    • 这两个参数分别定义了所有协议(包括TCP和UDP)的接收和发送缓冲区的最大值。
    • 当前值为212992字节(约208KB),这限制了通过 setsockopt() 系统调用可以设置的最大缓冲区大小。
  2. net.core.rmem_defaultnet.core.wmem_default:

    • 这些参数定义了所有协议(包括TCP和UDP)的接收和发送缓冲区的默认值。
    • 当前值为212992字节(约208KB),这意味着在创建新的socket时,如果没有特别指定缓冲区大小,则使用这个默认值。
  3. net.ipv4.tcp_rmemnet.ipv4.tcp_wmem:

    • 这两个参数专门针对TCP协议,定义了一个三个整数的向量,分别表示最小值、初始值和最大值,用于控制TCP接收和发送缓冲区的大小。
    • tcp_rmem: [4096, 131072, 6291456],即最小4KB,初始128KB,最大6MB。
    • tcp_wmem: [4096, 16384, 4194304],即最小4KB,初始16KB,最大4MB。

分析与建议

1. 检查是否需要调整
  • 高吞吐量需求:如果你的应用程序需要处理大量的数据传输或对网络性能有较高要求,当前的缓冲区大小可能不足。例如,较大的缓冲区可以帮助减少因网络延迟导致的数据包重传。

  • 现有问题:如果你遇到网络性能问题,如高延迟、丢包或应用程序频繁阻塞在 send()recv() 调用上,增加缓冲区大小可能有助于缓解这些问题。

2. 调整参数

你可以根据需要调整这些参数。以下是示例命令来增加缓冲区大小:

# 设置最大接收缓冲区大小
sudo sysctl -w net.core.rmem_max=8388608# 设置最大发送缓冲区大小
sudo sysctl -w net.core.wmem_max=8388608# 设置默认接收缓冲区大小
sudo sysctl -w net.core.rmem_default=4194304# 设置默认发送缓冲区大小
sudo sysctl -w net.core.wmem_default=4194304# 设置TCP接收缓冲区的最小、初始和最大值
sudo sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"# 设置TCP发送缓冲区的最小、初始和最大值
sudo sysctl -w net.ipv4.tcp_wmem="4096 16384 16777216"
3. 永久更改

为了使这些更改在系统重启后仍然有效,你需要将它们添加到 /etc/sysctl.conf 文件中:

net.core.rmem_max=8388608
net.core.wmem_max=8388608
net.core.rmem_default=4194304
net.core.wmem_default=4194304
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 16384 16777216

然后运行以下命令使更改生效:

sudo sysctl -p

验证更改

你可以再次使用 sysctl 命令验证更改是否生效:

sysctl net.core.rmem_max
sysctl net.core.wmem_max
sysctl net.core.rmem_default
sysctl net.core.wmem_default
sysctl net.ipv4.tcp_rmem
sysctl net.ipv4.tcp_wmem

其他注意事项

  1. 内存使用:增大缓冲区会占用更多内存,确保你的系统有足够的可用内存来支持这些更改。

  2. 性能测试:在生产环境中进行任何更改之前,建议先在测试环境中验证这些更改的效果,以确保不会引入新的问题。

  3. 应用层优化:除了调整内核参数外,还可以考虑优化应用程序的网络逻辑,例如使用异步I/O、流量控制等技术来提高网络性能。

通过合理调整这些内核参数,可以显著提升系统的网络性能,特别是在高负载或高吞吐量场景下。

相关文章:

Linux: 调整套接字缓冲区大小相关内核参数

Linux: 调整套接字缓冲区大小相关内核参数 内核参数关于套接字缓冲区大小相关的设置,这些参数控制了TCP和UDP套接字的接收和发送缓冲区的最大值、默认值以及动态调整范围。 当前配置 net.core.rmem_max 212992 # 最大接收缓冲区大小(字节&#…...

Linux 服务器部署deepseek

把手教你在linux服务器部署deepseek,打造专属自己的数据库知识库 正文开始 第一步:安装Ollama 打开官方网址:https://ollama.com/download/linux 下载Ollama linux版本 复制命令到linux操作系统执行 [rootpostgresql ~]# curl -fsSL http…...

性能测试工具

Postman Postman 是一款功能强大的API开发协作平台,支持构建、测试和记录 API。这款工具提供了直观的图形界面来发送请求并查看响应数据。它还允许创建复杂的 HTTP 请求序列,并能通过内置脚本引擎实现自动化测试场景。 对于团队合作而言,Po…...

DeepSeek、Kimi、文心一言、通义千问:AI 大语言模型的对比分析

在人工智能领域,DeepSeek、Kimi、文心一言和通义千问作为国内领先的 AI 大语言模型,各自展现出了独特的特点和优势。本文将从技术基础、应用场景、用户体验和价格与性价比等方面对这四个模型进行对比分析,帮助您更好地了解它们的特点和优势。…...

反转链表2(92)

92. 反转链表 II - 力扣(LeetCode) 相关题目:206. 反转链表 - 力扣(LeetCode) 解法: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(…...

CSDN、markdown环境下如何插入各种图(流程图,时序图,甘特图)

流程图 横向流程图 mermaid graph LRA[方形] --> B{条件a}B -->|满足| C(圆角)B -->|不满足| D(圆角)C --> E[输出结果1]D --> E效果图: 竖向流程图 mermaid graph TDC{条件a} --> |a1| A[方形]C --> |a2| F[竖向流程图]A --> B(圆角)B …...

《探秘AI绿色计算:降低人工智能硬件能耗的热点技术》

在人工智能飞速发展的当下,其硬件能耗问题愈发凸显。据国际能源署预测,人工智能的能源消耗可能大幅增长。因此,降低人工智能硬件能耗,实现绿色计算,已成为行业关键课题。以下是一些正在崭露头角的热点技术。 新型硬件…...

《Foundation 起步》

《Foundation 起步》 引言 在当今快速发展的科技时代,了解并掌握最新的技术是至关重要的。本文旨在为初学者提供一个全面的《Foundation》起步指南,帮助大家快速入门并掌握这一强大的技术。 一、什么是Foundation? Foundation 是一个流行的前端框架,由 ZURB 公司开发。…...

【Elasticsearch】runtime_mappings搜索请求中定义运行时字段

在 Elasticsearch 中,在搜索请求中定义运行时字段(Runtime Fields)是一种强大的功能,允许用户在查询时动态添加和计算字段,而无需预先在索引映射中定义这些字段。这种方式提供了极大的灵活性,尤其是在处理动…...

unity学习40:导入模型的 Animations文件夹内容,动画属性和修改动画文件

目录 1 Animations文件夹内容 2 每个模型文件的4个标签 3 model 4 rig 动画类型 5 Animation 5.1 新增动画和修改动画 5.2 限制动画某个轴的变化,烘焙 6 material 材料 1 Animations文件夹内容 下面有很多文件夹每个文件夹都是不同的动作模型每个文件夹下…...

【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十三节】

ISO 14229-1:2023 UDS诊断服务测试用例全解析(ControlDTCSetting_0x85服务) 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS协议、0x85服务、DTC设置控制、NRC覆盖、ISO 14229-1:2023 一、服务功能概述…...

web第三次作业

弹窗案例 1.首页代码 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>综合案例</title><st…...

GMSL 实例1:当 MAX96717 遇上 MAX96724,打通 Camera 视频数据传输

新年伊始&#xff0c;继 Deepseek 在 AI 圈掀起风波之后。比亚迪在2月10日发布会上重磅官宣&#xff1a;全系车型将搭载自研的高阶智驾系统“天神之眼”&#xff0c;覆盖从10万元级入门车型到高端豪华车型的所有范围。此举如一颗重磅炸弹投向当前一卷再卷的新能源汽车赛道&…...

Python实现AWS Fargate自动化部署系统

一、背景介绍 在现代云原生应用开发中,自动化部署是提高开发效率和保证部署质量的关键。AWS Fargate作为一项无服务器计算引擎,可以让我们专注于应用程序开发而无需管理底层基础设施。本文将详细介绍如何使用Python实现AWS Fargate的完整自动化部署流程。 © ivwdcwso (ID…...

DeepSeek 助力 Vue 开发:打造丝滑的侧边栏(Sidebar)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

Android remount failed: Permission denied 失败解决方法

当我们adb remount 执行时有时候会报错&#xff1a; remount failed: Permission denied可以通过解决 adb disable-verity成功后会提示 Successfully disabled verity Now reboot your device for settings to take effect但如果设备此时OEM锁是关闭的则会&#xff0c;提示&…...

基于opencv的 24色卡IQA评测算法源码-可完全替代Imatest

1.概要 利用24色卡可以很快的分析到曝光误差&#xff0c;白平衡误差&#xff0c;噪声&#xff0c;色差&#xff0c;饱和度&#xff0c;gamma值。IQA或tuning工程一般用Imatest来手动计算&#xff0c;不便于产测部署&#xff0c;现利用opencv实现了imatest的全部功能&#xff0c…...

数据结构与算法之排序算法-(计数,桶,基数排序)

排序算法是数据结构与算法中最基本的算法之一&#xff0c;其作用就是将一些可以比较大小的数据进行有规律的排序&#xff0c;而想要实现这种排序就拥有很多种方法~ &#x1f4da; 非线性时间比较类&#xff1a; 那么我将通过几篇文章&#xff0c;将排序算法中各种算法细化的&a…...

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析②】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase02 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月15日 关键词&#xff1a;UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-002测试用例 用例ID测试场景验证要点参考条款预期…...

MATLAB图像处理:图像特征概念及提取方法HOG、SIFT

图像特征是计算机视觉中用于描述图像内容的关键信息&#xff0c;其提取质量直接影响后续的目标检测、分类和匹配等任务性能。本文将系统解析 全局与局部特征的核心概念&#xff0c;深入讲解 HOG&#xff08;方向梯度直方图&#xff09;与SIFT&#xff08;尺度不变特征变换&…...

kibana es 语法记录 elaticsearch

目录 一、认识elaticsearch 1、什么是正向索引 2、什么是倒排索引 二、概念 1、说明 2、mysql和es的对比 三、mapping属性 1、定义 四、CRUD 1、查看es中有哪些索引库 2、创建索引库 3、修改索引库 4、删除索引库 5、新增文档 6、删除文档 5、条件查询 一、认识…...

手写一个Java Android Binder服务及源码分析

手写一个Java Android Binder服务及源码分析 前言一、Java语言编写自己的Binder服务Demo1. binder服务demo功能介绍2. binder服务demo代码结构图3. binder服务demo代码实现3.1 IHelloService.aidl3.2 IHelloService.java&#xff08;自动生成&#xff09;3.3 HelloService.java…...

MAC 系统关闭屏幕/睡眠 后被唤醒 Wake Requests

问题&#xff1b;查看wake 日志 pmset -g log | grep "Wake Requests" 为 Wake Requests [*processdasd requestSleepService...info"com.apple.alarm.user-invisible-com.apple.calaccessd...电源设置命令参考&#xff1a; pmset -g sched //查看定时…...

【Elasticsearch】运行时字段(Runtime Fields)索引时定义运行时字段

在 Elasticsearch 中&#xff0c;运行时字段&#xff08;Runtime Fields&#xff09;是一种在查询时动态计算的字段&#xff0c;而不是在索引时预先存储的字段。运行时字段为数据处理提供了极大的灵活性&#xff0c;尤其是在处理结构不固定的日志数据或需要动态生成字段值的场景…...

elasticsearch8 linux版以服务的方式启动

1.创建系统服务文件 对于使用 systemd 作为系统初始化系统的 Linux 发行版&#xff08;如 CentOS 7 及以上、Ubuntu 16.04 及以上&#xff09;&#xff0c;需要创建一个 systemd 服务文件。以 root 用户或具有 sudo 权限的用户身份执行以下操作&#xff1a; sudo vim /etc/sy…...

【动态规划篇】:当回文串遇上动态规划--如何用二维DP“折叠”字符串?

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;动态规划篇–CSDN博客 文章目录 一.回文串类DP核心思想&#xff08;判断所有子串是否是回文…...

Windows 安装 GDAL 并配置 Rust-GDAL 开发环境-1

Rust-GDAL 是 Rust 语言的 GDAL&#xff08;Geospatial Data Abstraction Library&#xff09; 绑定库&#xff0c;用于处理地理数据。由于 GDAL 依赖较多&#xff0c;在 Windows 上的安装相对复杂&#xff0c;本文档将介绍如何安装 GDAL 并配置 Rust-GDAL 的开发环境。 1. 检…...

第1期 定时器实现非阻塞式程序 按键控制LED闪烁模式

第1期 定时器实现非阻塞式程序 按键控制LED闪烁模式 解决按键扫描&#xff0c;松手检测时阻塞的问题实现LED闪烁的非阻塞总结补充&#xff08;为什么不会阻塞&#xff09; 参考江协科技 KEY1和KEY2两者独立控制互不影响 阻塞&#xff1a;如果按下按键不松手&#xff0c;程序就…...

开源语音克隆项目 OpenVoice V2 本地部署

#本机环境 WIN11 I5 GPU 4060ti 16G 内存 32G #开始 git clone https://github.com/myshell-ai/OpenVoice.git conda create -n opvenv python3.9 -y conda activate opvenv pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/…...

DeepSeek大模型一键部署解决方案:全平台多机分布式推理与国产硬件优化异构计算私有部署

DeepSeek R1 走红后&#xff0c;私有部署需求也随之增长&#xff0c;各种私有部署教程层出不穷。大部分教程只是简单地使用 Ollama、LM Studio 单机运行量化蒸馏模型&#xff0c;无法满足复杂场景需求。一些操作配置也过于繁琐&#xff0c;有的需要手动下载并合并分片模型文件&…...