Linux UDP 수신 버퍼의 최대 크기는 얼마입니까? 나는 그것을에만 사용할 수 RAM에 의해 제한의 사상,하지만 난 rmem_max에 대한Linux UDP 수신 버퍼의 최대 크기
5기가바이트을 설정할 때 : I 측정
gen_udp:listen(Port, [{recbuf, 4000000000}])
: (얼랑에서) 실제의 소켓 버퍼
echo 5000000000 > /proc/sys/net/core/rmem_max
4GB의 버퍼 사용률은 다음과 같습니다 :
# netstat -u6anp | grep 5050
udp6 1409995136 0 :::5050 :::* 13483/beam.smp
이 1.4GB를 초과 할 수 없습니다. 더 작은 버퍼 크기, 예를 들면. 500MB, 실제 버퍼 크기는 구성된 값과 일치합니다. 제 시스템은 데비안 6.0입니다.이 시스템은 50GB RAM을 사용할 수 있습니다.
사용 가능한 RAM에 의해서만 제한적이라고 말하는 곳은 어디입니까? 왜 4GB 버퍼가 필요하다고 생각하십니까? – EJP
그렇지 않습니다. 다른 방법으로도 제한적이라고 말하지는 않습니다. 더 긴 네트워크 트래픽 엿봄 동안에 자료 손실을 피하기 위하여 그런 완충기를 필요로한다. –
반대로. 커널이 여러분이 제공 한 값을 조정할 수도 있고, 실제로 할당 된 값을 알아보기 위해 getsockopt()를 호출 할 것을 조언합니다. 트래픽 최고치를 처리하는 데 4GB가 필요하다고 생각하기 어렵습니다. 아마 당신은 단지 더 빨리 읽어야합니다. – EJP