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

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

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

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


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

7 ответов

18 просмотров

Даже если не брать в расчёт, что у вас древнючая версия, то по данному инпуту нельзя сказать ничего. Флеймграф крайне редко показывает проблему, если только она не вопиющая. Нужно описание: что за приложение, какие модули используются, какая нагрузка, что в логах, есть ли 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- Автор вопроса

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

Схоронил:)

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Я вот подумал. SSE выполняет операции максимум с 64-битной точностью. А FPU - всегда с 80-битной. Разве не должно быть FPU точнее тогда?
The Bird of Hermes
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
как быть с принтером? такой подход прокатит?
zamtmn
12
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Карта сайта