Jaki jest maksymalny rozmiar bufora odbioru UDP dla systemu Linux? Myślałem, że to jest ograniczona tylko przez dostępną pamięć RAM, ale kiedy ustawićLinux UDP maksymalny rozmiar bufora odbiorczego
5GB za rmem_max:
echo 5000000000 > /proc/sys/net/core/rmem_max
i 4 GB dla rzeczywistego bufora gniazda (w Erlang):
gen_udp:listen(Port, [{recbuf, 4000000000}])
Kiedy mierzę wykorzystanie bufor wykazuje:
# netstat -u6anp | grep 5050
udp6 1409995136 0 :::5050 :::* 13483/beam.smp
nie może przekroczyć 1.4GB. Dla mniejszych rozmiarów buforów, np. 500 MB, rzeczywisty rozmiar bufora pasuje do skonfigurowanej wartości. Mój system to Debian 6.0, urządzenie ma 50 GB dostępnej pamięci RAM.
Gdzie jest napisane, że jest ograniczona tylko dostępną pamięcią RAM? I dlaczego myślisz, że potrzebujesz bufora 4 GB? – EJP
Nie ma. Nie twierdzi, że jest ograniczona w jakikolwiek inny sposób. Potrzebuję takiego bufora, aby uniknąć utraty danych podczas dłuższego podglądu ruchu sieciowego. –
Wręcz przeciwnie. Mówi, że jądro może dostosować wartość, którą podajesz w górę lub w dół, i radzi ci wywołać 'getsockopt()', aby zobaczyć, jaka wartość została faktycznie przydzielona. Trudno mi uwierzyć, że potrzebujesz 4 GB do obsługi szczytów ruchu. Prawdopodobnie powinieneś po prostu czytać szybciej. – EJP