发布网友 发布时间:2022-05-01 15:10
共1个回答
热心网友 时间:2023-10-21 00:08
linux下,抛开性能上的影响,程序监听套接字的数量*主要几个方面:追答这个问题和套接字的*没什么关系
listen函数的第二个参数是指等待建立连接的队列长度,简单说相当于一个连接缓冲区,每个连接进来,会先放进这个队列,listen从这个队列里面取出未处理的连接进行处理。如果瞬间有一堆连接进来,这个队列又太短不足以容纳这些连接请求,那么多出来的连接请求会被抛弃,也就是连接失败。
因为每个连接的处理时间都很短,所以这个值主要是涉及到瞬间连接很多的时候,这个值太小会导致一批连接失败,太大的话,如果操作系统本身的连接队列就处理不过来,这个值大了也没用,但也没什么坏影响,除了多耗点内存。
对于连接频繁的服务器网络应用来说,这个参数设为5就太小了,可以设为128或者256。有名的网络IO库libevent的这个值就是128。
热心网友 时间:2023-10-21 00:08
linux下,抛开性能上的影响,程序监听套接字的数量*主要几个方面:追答这个问题和套接字的*没什么关系
listen函数的第二个参数是指等待建立连接的队列长度,简单说相当于一个连接缓冲区,每个连接进来,会先放进这个队列,listen从这个队列里面取出未处理的连接进行处理。如果瞬间有一堆连接进来,这个队列又太短不足以容纳这些连接请求,那么多出来的连接请求会被抛弃,也就是连接失败。
因为每个连接的处理时间都很短,所以这个值主要是涉及到瞬间连接很多的时候,这个值太小会导致一批连接失败,太大的话,如果操作系统本身的连接队列就处理不过来,这个值大了也没用,但也没什么坏影响,除了多耗点内存。
对于连接频繁的服务器网络应用来说,这个参数设为5就太小了,可以设为128或者256。有名的网络IO库libevent的这个值就是128。