Разбор случаев
Белуга 0.7.3 · документация разработчика
Содержание главы
- Кейс 1: goroutine-утечка
- Кейс 2: C-библиотека
- Кейс 3: кэш без лимита
Кейс 1: goroutine-утечка
Симптом: RSS растёт линейно, счётчик аллокаций по месту чтения канала.
Дельта показала единственный растущий кадр — net/http.(*conn).serve.
Причина: соединения без таймаута копились при медленном клиенте. Лечение:
ReadTimeout/IdleTimeout на сервере.
Кейс 2: C-библиотека
Симптом: стек обрывается на malloc без вышеосязаемого кадра.
Белуга помечает такие как [native]. Дальше — обвязка: valgrind на
коротком прогоне или нативные логи библиотеки. Символизация бинарника дала
путь вызова обёртки.
Кейс 3: кэш без лимита
Симптом: лестница с пологим плато, сброс при рестарте. Дельта «A→B→C» показала ступеньку на каждом отчётном окне. Это не утечка, а кэш с ростом числа ключей. Лечение: LRU-лимит, а не «исправление кода».