由于小沃经常开发一些高并发的程序,经常使用到非阻塞IO以及epoll等特性。而在非阻塞IO编程中,socket的缓冲区大小是提高性能的一个重要指标。
这个参数可以通过setsockopt来修改,但是修改总有个上线,如果知道了这个上线,我们就可以合理用户层的接收缓冲区大小了。
下面小沃就来告诉大家如何查看这个缓冲区大小的最大可设置值:
读缓冲
cat /proc/sys/net/core/rmem_max
写缓冲
cat /proc/sys/net/core/wmem_max
但是注意,这个值并不是最大值,这个值只有最大值的1/2。
当我们通过setsockopt设置的参数大于上面的值时,实际就会变为这个值的两倍。
比如通过上面的命令得到的值为212992,那么通过程序设置的值大于212992,实际就会变为2*212992=425984?
文章作者:沃航科技