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

Привет, периодически встает тара 1.6, запросы принимает, но не отвечает(клиент

рубит по таймауту)
раз в час-полтора

https://filebin.net/nlkwbqwa9bd1sdtq/last.svg?t=dec2gowl
вот что перф показывает, мне показалось, что gc_* стало больше


так выглядит обычная работа
https://filebin.net/nlkwbqwa9bd1sdtq/usual.svg?t=71mp6709

7 ответов

19 просмотров

Даже если не брать в расчёт, что у вас древнючая версия, то по данному инпуту нельзя сказать ничего. Флеймграф крайне редко показывает проблему, если только она не вопиющая. Нужно описание: что за приложение, какие модули используются, какая нагрузка, что в логах, есть ли too long'и?

Mikhail- Автор вопроса

приложение - гошный бек модули fiber,util,json,digest,msgpack фиберы отрубал для тестов, подлипает все равно too long есть -валы пишет долго в момент тормозов, с дисковым ио не связано, больше ничего плохого в логах нет я гонял стрейсом, в момент проблемы тара с сокетов читает новые запросы, но новые не генерит. box.stat --- - DELETE: total: 25112 rps: 0 SELECT: total: 243309024 rps: 3872 INSERT: total: 45967 rps: 0 EVAL: total: 0 rps: 0 CALL: total: 17891486 rps: 251 REPLACE: total: 2325611 rps: 29 UPSERT: total: 0 rps: 0 AUTH: total: 0 rps: 0 ERROR: total: 5180 rps: 0 UPDATE: total: 965308 rps: 13

> приложение - гошный бек я имел в виду приложение в тарантуле > too long есть -валы пишет долго в момент тормозов, это и есть ваша проблема. диск не при чём. у вас какой-то код слишком долго не отдаёт управление. например обрабатываете большой селект, тысяч на 200 или парсите большой json или просто цикл длинный сделали. > с сокетов читает новые запросы чтение из cокетов происходит из iproto потока, а на обработке у вас залипает tx

Mikhail- Автор вопроса

а трейсить - только впиливать в код логирование?

В результате обсуждения в привате родился такой сниппет: local TOO_LONG_CALL_THRESHOLD = 0.1 local clock = require 'clock' local json = require 'json'.new() json.cfg{ encode_use_tostring = true } local function ftail(fname, args, start, ...) local run = clock.realtime() - start if run > TOO_LONG_CALL_THRESHOLD then log.info("Function call %s(%s) was too long: %0.2fs", fname, json.encode(args), run) end return ... end local function ftrace(fname, func) return function(...) local start = clock.realtime() return ftail(fname, {...}, start, func(...)) end end local function apply_ftrace(name, namespace) for fname, v in pairs(namespace) do if type(v) == 'table' then apply_ftrace(name .. '.' .. fname, v) elseif type(v) == 'function' and v ~= ftrace then namespace[fname] = ftrace(name .. '.' .. fname, v) end end end для активации трейсинга функций применить на исследуемый неймспейс (допустим приложение живёт в таблице app и вы обрааетесь к функциям как app.smth.func()) apply_ftrace('app',app)

Mikhail- Автор вопроса

еще раз спасибо

Схоронил:)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
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...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта