o.lettuce.core.RedisException :: io.netty.util.internal.OutOfDirectMemoryError при получении большого объекта (2 МБ) из Redis - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть приложение Springboot, которое подключается к кэшу Redis (Azure redis) и получает объект. Размер объекта составляет 2 МБ. Иногда я получаю следующую ошибку:

io.lettuce.core.RedisException: io.netty.util.internal.OutOfDirectMemoryError: не удалось выделить 524288000 байт (-ов) прямой памяти (используется: 553648128, макс: 1073741824) "}.

Это происходит не каждый раз. Почему выделяется 524288000 байт для извлечения объекта размером 2 МБ? Когда он работает, я получаю ответ в 1 комплект c.

Подробности:

Версия загрузочной пружины: 2.1.5

Повторное отображение данных пружины: 2.1.8

Ядро салата: 5.1 .6

io.Netty: 4.1.36

Среда развертывания Дата:

Среда: Pivotal Cloud Foun dry Среда

Память: 2 ГБ с прямая память 1 ГБ

Redis:

Azure Premium Redis с 6 ГБ памяти.

Фрагмент кода:

Для получения объекта я используя следующий фрагмент кода:

redisTemplate.opsForValue().get(keyname);

, а затем преобразовать в объект с помощью ObjectMapper.

и все свойства по умолчанию.

1 Ответ

0 голосов
/ 03 февраля 2020

Поскольку распределение происходит как часть салата, я бы предложил открыть там отчет об ошибке. Это не звучит правильно.

...