170 похожих чатов

Есть знатоки нетти(ktor) в чате? Нетти буферизирует данные, если сервер

не успевает их обработать -> растут директ буфера
Надо сконфигурить back pressure
Устанавливал пропертю -Dio.netty.maxDirectMemory=268435456, не помогла, растет дальше память
Пробовал с пропертей jvm -XX:MaxDirectMemorySize, отваливается клиент с HTTP/1.1 header parser received no bytes

12 ответов

35 просмотров

Последнее сообщение очень похоже на HTTP-клиент из JDK. Вы в итоге что используете-то, Netty напрямую или Ktor? В последнем случае точно не надо думать про backpressure, проблема в другом месте.

Михаил
ktor

Ок, допустим. А какой engine? А Netty вы где-нибудь напрямую используете? И я не очень понимаю, что вы пытаетесь исправить увеличением лимита на direct буферы, если их больше, чем нужно.

Михаил- Автор вопроса
Vladimir Petraković
Ок, допустим. А какой engine? А Netty вы где-нибуд...

engine = Netty напрямую нигде не используем

Михаил
engine = Netty напрямую нигде не используем

Тогда вряд ли стоит туда лезть. Если буферы утекают, это баг в Ktor. Можно поискать их в хипдампе. А "HTTP/1.1 header parser received no bytes" откуда вылетает, из Ktor с Netty?

Михаил- Автор вопроса
Vladimir Petraković
Тогда вряд ли стоит туда лезть. Если буферы утекаю...

эксепшен на клиенте, на него вообще нет смысла обращать внимание - я это написал лишь к тому, если порезать память на оффхип - клиент падает в хипдампе оффхип данные вряд можно найти, или я что то не знаю?

Михаил
эксепшен на клиенте, на него вообще нет смысла обр...

Если растёт direct память, в хипе валяются соответствующие буферы

Михаил- Автор вопроса
Vladimir Petraković
Если растёт direct память, в хипе валяются соответ...

не очень понимаю что я по ним пойму у меня есть трейс откуда аллоцируются эти директ буфера но полезного от этого мало https://pastebin.com/VRZQmeMn

Михаил
не очень понимаю что я по ним пойму у меня есть тр...

Аллоцируются они понятно где, непонятно, кто их держит и зачем. Хотя вы и с этим вряд ли что-то сделаете, если это баг в фреймворке, но вдруг.

Михаил- Автор вопроса
Vladimir Petraković
Аллоцируются они понятно где, непонятно, кто их де...

зачем они держатся понятно - это байтики от запроса и их нужно запроцессить ожидалось - если бекенд не успевает процессить данные, должна снижаться скорость на уровне сети, но почему то данные начинают кешироваться на бекенде

Михаил
зачем они держатся понятно - это байтики от запрос...

Значит, их кто-то (Ktor) вычитал из сокета раньше, чем надо. Но вдруг там что-то другое происходит.

Михаил
зачем они держатся понятно - это байтики от запрос...

Кстати, в @kotlin_jvm скорее всего больше людей с таким же стеком

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта