В блоге вы прямо заявляете, что 12M сокеты используют 46 ГБ ОЗУ для стека TCP - в дополнение к тому, что еще работает.
Если у вас есть только 16 ГБ, тогда запустите Tomcat с приложением, и у вас просто не будет достаточно ОЗУ для приема большего количества соединений. Цифры NodeJS похожи, но не равны, потому что свободная RAM похожа, но не равна.
Обновление до 128 или 256 ГБ, и я подозреваю, что это будет работать нормально.