关于setsockopt的SO

编程入门 行业动态 更新时间:2024-10-14 22:14:51

关于<a href=https://www.elefans.com/category/jswz/34/1671108.html style=setsockopt的SO"/>

关于setsockopt的SO

               先从sendfile说起吧,sendfile其实就是大家口中说的“零拷贝”,在服务器传输大文件方面具有卓越的性能,究其无非主要原因两点: 

           1.  减少CPU的使用

           2.  减少系统调用和数据拷贝的次数

           这方面的资料很多,大家网上可以自行搜索。在测试sendfile的小IO问题的时候,意外需要设置setsockopt的SO_SNDLOWAT字段,SO_SNDLOWAT是一个发送低潮字段,根据网上的解释,设置该字段可以当缓冲区有多少剩余空间的时候才被触发调用。那样岂不是很爽,那调用sendfile的时候磁盘的性能可以大大的提高,不会在产生小IO了。 经过本人测试(发送低潮设置512k),并没有啥卵用。测试结果如下:

            


            谷歌百度都没有搜出来,然后默默打开linux-3.18-rc6内核源码看到了一句话,卧槽,内核原来没有实现SO_SNDLOWAT的代码,只有SO_RCVLOWAT字段(接收低潮)代码,可惜这个字段对于我目前还用不到的。网上的那么多解释也不过人云亦云。下面这句话意思是:我们实现的SO_SNDLOWAT不可使用。

       

            

           

           这样的话,《linux高性能服务器编程》就存在问题了,这本书不过还是挺好的,毕竟我的入门书



             所以呢,对于网上的资料我们应该持有半信半疑的态度,什么都自己搞搞,就清楚怎么回事了,对于一些原因,一定要深究到底,不然会被叼死,如果知其然,也只其所以然,那样就不会被怼到死。


           如果有什么问题,欢迎指针!

           

 


 

 

更多推荐

关于setsockopt的SO

本文发布于:2024-02-07 00:57:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1751856.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:setsockopt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!