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

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 лет назад меня попросили посмотреть, почему кролик отваливается, не

работает и сжирая весь процессор и память падает.

Я нашел эту проблему и она никуда не делась.

Неужели в OTP настолько не пересекаются с высокими нагрузками?

20 ответов

62 просмотра

мы пересекаемся

его используют в таких командах где не считают процессорное время и память

Maksim-Lapshin Автор вопроса
Иванов
его используют в таких командах где не считают про...

к чему эта нелепость. Когда данные перестают утекать, неважно сколько у тебя памяти и процессора

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

Д. П.
если я возьму слабый нетбук чтобы легче было перег...

Настроить handler так, чтоб он не уходил в sync или drop

Maksim-Lapshin Автор вопроса
Д. П.
если я возьму слабый нетбук чтобы легче было перег...

Достаточно устроить тысячу крешей в секунду с большими бинарями в стейте

а можешь поточнее описать, в чём проблема? Я в этом коде вижу: * потенциально долгое форматирование делается в контексте клиента * опциями можно ограничить размер распечатанного лога (опять же в контексте клиента) * в зависимости от глобального флага в гипотетически бесплатном хранилище (persistent_term) логирование может слегка притормозить клиентский процесс * на каждом сообщении логгер проверяет размер своего ящика и может поменять режим логирования * все пределы (`sync_mode_qlen`, drop_mode_qlen, `flush_qlen`) настраиваются * до синглтона долетают небольшие бинари, да и то если очередь не переполнена > устроить тысячу крешей в секунду с большими бинарями в стейте это может ударить по SASL и супервизору, но не должно сильно ударить по логгеру

Maksim-Lapshin Автор вопроса
Maksim Lapshin
Форматирование убивает

какие параметры по глубине и максимальному размеру записи лога?

Sergei
Настроить handler так, чтоб он не уходил в sync ил...

вот тут я не понял, можешь как для танкистов?

Д. П.
вот тут я не понял, можешь как для танкистов?

могу! https://www.erlang.org/docs/26/apps/kernel/logger_chapter.html#message-queue-length

Д. П.
понял!

вот тут интересное: If sync_mode_qlen is set to the same value as drop_mode_qlen, synchronous mode is disabled. That is, the handler always runs in asynchronous mode, unless dropping or flushing is invoked. и у этой палки два конца: 1) если sync выключен, дроп запредельный и много логов, то они будут копиться в очереди хэндлера; 2) если sync включен, то ты блочишь процесс, который что-то логирует, и можешь получить распухшую очередь уже в нём. короч, сильно завсит от приложения и от того, насколько важны логи

Sergei
вот тут интересное: If sync_mode_qlen is set to th...

куда ни кинь — всюду клин. если не успеваем логи, то без разницы в каком месте, или та или другая очередь все равно завалит систему.

Д. П.
куда ни кинь — всюду клин. если не успеваем логи, ...

flush_qlen The handler process increases its priority during the flush loop to make sure that no new events are received during the operation

Maksim-Lapshin Автор вопроса
Д. П.
куда ни кинь — всюду клин. если не успеваем логи, ...

не обязательно. Учитывая, что эрланг из коробки очень говорлив, логи происходят большим всплеском, когда что-то крешится. Соответственно в этот момент они просто избыточны

Иванов
Звучит как-то фаталистически

не, ну значит нам надо ещё одно ядро с процессом отдельно и логи слать туда в сыром виде. не? насчет крешей, да, я считаю что let it crash на проде надо оставлять для самых нереальных случаев. если у нас такая нагрузка, что на форматирование не хватает процессора, то как минимум основных 20% случаев надо в обработчик

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта