Что такое io.netty.allocator.maxOrder в Netty? - PullRequest
0 голосов
/ 27 января 2020

Пожалуйста, объясните, что такое io.netty.allocator.maxOrder в Netty!

По умолчанию это значение равно 11, поэтому я получаю 8192 << 11 = 16 МБ на чанк Для 2 ядер на Java 11 Я получаю 4 прямых арены с 6 DirectByteBuffers каждый (у меня есть дамп памяти). Итак, 16Mib x 4 arenas x 6bufs = 384Mib. </p>

Мое приложение имеет транспортный сервер на базе netty с сотнями клиентских подключений, отправляющих множество небольших сообщений (по несколько Кбайт каждое сообщение). Но и мое приложение использует прямую память для собственных нужд. Поэтому дополнительные 384Mib стоят для меня слишком дорого.

Пожалуйста, посоветуйте, можно ли уменьшить io.netty.allocator.maxOrder до значения 8 без какого-либо снижения производительности netty?

1 Ответ

0 голосов
/ 30 января 2020

Конечно, вы можете. Просто используйте профилировщик, чтобы понять эффект здесь. Эти цифры были использованы на основе статьи / блога jemallo c на момент написания реализации.

...