热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

请问设大了SO_SNDBUF和SO_RCVBUF是否对传输速度有提高?我试了,好像没啥用

请问设大了SO_SNDBUF和SO_RCVBUF是否对传输速度有提高?我试了,好像没啥用
请问设大了SO_SNDBUF和SO_RCVBUF是否对传输速度有提高?我试了,好像没啥用

14 个解决方案

#1


这个只是系统缓冲区的大小,发送速度是跟网络状况有关的
撇开网络状况,当然跟自己写的程序性能好坏也有一定的关系

#2


关键还是数据的处理
内存的管理

#3


一般网络上允许的最大消息(1460字节)都比你缓冲小,用缓冲对速度基本没什么影响,主要是网络慢

#4


没有用处,网络传送数据由网速与远传设备决定,通常cpu处理速度远大于网路速度,
如果cpu速度与网路速度相差不大,此时程序缓冲区的大小会起作用

#5


一般网络使用时没什么用处,但是在网速理想,不作为瓶颈考虑的情况下还是有影响的。
SO_SNDBUF和SO_RCVBUF设置系统缓冲区的大小,在接受和发送数据时直接影响系统遍历缓冲区的行为,比如你实际发送的数据比较少,接收缓冲区却很大,系统做无效遍历的内容会增多,肯定会影响效率的。

这个我在局域网对一个服务器程序做压力测试时候确定过。
所以一般网络应用不需要自己设置这些数据,系统默认即可,除非你能确定你数据包的大小,才特意修改。

貌似CSDN的老帖子里面有介绍相关的内容,我当时也是看着别人讲的做的。

#6


其实本质上没什么大的区别,但还是设置吧,觉得心里踏实些。

#7


引用楼主 xinyi 的回复:
请问设大了SO_SNDBUF和SO_RCVBUF是否对传输速度有提高?我试了,好像没啥用


有用,如果你要发送很多数据,如果你没设置较大的buf,就有可能因为较差的网络而导致cpu需等待发送数据完成再继续发送剩余的数据。

对于接收来说,除非网络速度太快或者在嵌入式上研发(cpu还是差点),否则意义不大,现在随便一台电脑的处理速度都不差

#8


肯定有提高的啊,SO_SNDBUF SO_RCVBUF设置滑动窗口的大小,可以提高吞吐量的。

#9


如果你的带宽足够大时,增加这些缓冲buff才会增加发送速度,否则根本没用。你会发现在同一局部网中加大这个缓冲时,发送速度会加快得很明显。

#10


一般情况下没用,如果是LAN或者网络异常好,设置大一些,会有用

WAN下效果不行的,因为你出去后被路由了多少次你自己也不清楚,数据包很少会超过1K5

#11


当带宽足够大可以令8K的默认发送缓冲buff时,加大了就会提升数据传输速度(适用于LAN或WAN).

#12


当带宽足够大可以令8K的默认发送缓冲buff成为瓶颈时

#13


对传输速度没有提高,但方便了不少,如果你两次发送中的时间相隔很多,还是有提高的。

#14


据我实测内网100M带宽,将SO_SNDBUF、SO_RCVBUF同设为0,并没有见到显著提升性能,反而由于内核直接访问应用层的Buffer(可能是锁机制),而导致应用层的缓冲开销增加了一点,CPU开销基本同没设置前。

如果不设置,通常内核缓冲为8.5K字节,一般情况应该够用了。

推荐阅读
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 压力测试工具  ab
    ab是Apache自带的一个压力测试工具,命令行,是ApacheBench命令的缩写。ab的原理:ab命令会创建多个并发访问线程ÿ ... [详细]
  • 压力测试_单节点数据库的压力测试
    mysqlslap是mysql自带的基准测试工具,优点:查询数据,语法简单 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • PHP编程能开发哪些应用?
    导读:很多朋友问到关于PHP编程能开发哪些应用的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
author-avatar
无正道
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有