IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> tcp_rmem -> 正文阅读

[网络协议]tcp_rmem

背景:厦门使用的电信4G卡,用4G网络更新应用时,总在步骤结束的时候提示更新失败
银商的电信卡,应该是不限流量的,机器在布机的时候都要通过网络去下载并更新应用,其下载总体可以分为三个步骤,每个步骤结束后,会自动进行下一步继续下载。步骤一下载完成,已经100%了,却报了一个下载失败,因为失败了,就无法进行步骤二,好在能断点续传,下次点击下载就直接从步骤二开始。
做了很多的测试后发现,此问题,仅在4G的网络下才有,3G和wifi网络都不会出现,而下载的内容并没有出现缺失,实实在在的是下载完成100%了,只不过socket就是报了个fail出来。

后来吧,查了三天,这个问题解决了,最终修改点是这个:
在这里插入图片描述

这个参数是影响 /proc/sys/net/ipv4/tcp_rmem
也就是在无数尝试之后,发现修改tcp_rmem这个参数,之后问题就好了

详解TCP中的tcp_mem、tcp_rmem、tcp_wmem定义及计算方式
tcp_mem:单位是page,此值是动态的,linux根据机器自身内存情况进行分配
可根据张小三资源网centos性能优化那篇文章里查看查询方式。

最小:在这个页数之下,TCP不担心它的内存需求。
压力:当TCP分配的内存量超过此页数时,TCP将减缓其内存消耗并进入内存压力模式,当内存消耗低于“min”时,该模式将退出。
最大:所有TCP套接字允许排队的页面数。超出则打印Out of socket memory
假设一个page大小是4K
net.ipv4.tcp_mem = 196608 262144 393216 # 设置page数,* 4k 即是内存数值
那么对应的内存分配就是:768M 1G 1.5G
内存为1G时进入压力模式
大于TCP套接字允许排队的页面数则打印。

tcp_rmem:单位是字节 接收缓存区大小,缓存从对端接收的数据,后续会被应用程序读取

最小:默认值4K,TCP套接字使用的接收缓冲区的最小大小。即使在中等的内存压力下,它也能保证连接到每个TCP套接字。
默认:默认值87380字节,TCP套接字使用的接收缓冲区的初始大小。此值覆盖net.core.rmem默认值。此值将导致窗口为65535,默认设置为tcp_adv_win_scale和tcp_app_win:0,默认设置为tcp_app_win时,窗口会小一些。
最大:介于87380字节和6MB之间,取决RAM大小。TCP套接字接收器允许接收缓冲区的最大大小,此值不会覆盖net.core.rmem_max。使用SO_RCVBUF调用setsockopt()将禁用该套接字的接收缓冲区大小的自动调整,在这种情况下,将忽略此值。

tcp_wmem:单位字节 发送缓存区大小,缓存应用程序的数据,有序列号被应答确认的数据会从发送缓冲区删除掉。

最小:默认4K,为TCP套接字的发送缓冲区保留的内存量。每个TCP套接字由于其诞生的事实而有权使用它。
默认:最大16K,自动调整。TCP套接字使用的发送缓冲区的初始大小。此值将覆盖net.core.wmem_default,通常低于net.core.wmem_default。
最大:介于64K和4MB之间,具体取决于RAM大小。TCP套接字的发送缓冲区所允许的最大内存量。此值不会覆盖net.core.wmem_max。使用SO_SNDBUF调用setsockopt()会禁用该套接字的发送缓冲区大小的自动调整,在这种情况下该值将被忽略。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-09 21:05:20  更:2022-02-09 21:07:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:42:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码