JVM с использованием SO_RCVBUF больше, чем системный максимум - PullRequest
1 голос
/ 18 мая 2019

В Linux (Ubuntu / x64) я проверил, что максимальное значение SO_RCVBUF равно

~$ cat /proc/sys/net/core/rmem_max
212992

Однако, когда я запускаю код ниже размера получения сокета по умолчанию, он равен 530904.

SocketChannel ss = SocketChannel.open(new InetSocketAddress("localhost", 9876));
ss.configureBlocking(false);
//ss.socket().setReceiveBufferSize(10*1024*1024);
System.out.println("Receive size:"+ ss.socket().getReceiveBufferSize());

Что странно, если я раскомментирую строку setReceiveBufferSize над выводом, которая изменится на

Receive size:212992

, т. Е. Размер получения по умолчанию JVM превышает максимальный уровень системы, но он не позволяет мне установитьразмер выше макс.

Кто-нибудь знает, что здесь происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...