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

Я новичок в го, написал простой key-value storage с ttl

для записей и с rest api. Запускаю в scratch docker, и делаю запросы из питона (~2.5-3k rps). Смотрю потребление памяти через docker stats. Получается следующая ситуация: график.

Данные хранятся в map, а конкретно shrinking_map (github.com/go-auxiliaries/shrinking-map/pkg/shrinking-map). Shrink происходит каждые 10.000 удалений, а так же когда количество ключей = 0. TTL записей отслеживается через приоритетную очередь.

После удаления всех элементов, размеры мапы и очереди равны 0, однако память никогда не опускается до изначальных значений. Повторение нагрузки рисует точно такой же пик и две ступеньки (график).

Стоит ли искать memory leak или это операционная система считает ресурсы прикрепленными к процессу? Если memory leak, то какие в go существуют решения для этого?

Так же буду рад любой критике решения, так как еще развиваюсь

1 ответов

15 просмотров

Это не выглядит как утечка памяти, это выглядит как нежелание рантайма совсем все ресурсы отдавать обратно ОС - ведь уже все равно их запросили. Но я очень мало знаю про рантайм Го. В целом под strace ты можешь увидеть системные вызовы mmap/munmap.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта