высоко нагруженный, аля 60-120к клиентов подклчено на хосте. Они все чета делают. Код в сервисе можно менять в пределах разумного.
Известно, что течет память.
Надо найти что течет.
Как это сделать?
один из вариантов валгринд, но не хотелось бы. потому что проверяли с 2-3 клиентами и все ок. Проблема только с продакшн трафиком. Заправляли продакшн траф когда все под валгриндом, все вставало колом ясно дело.
Какие еще идеи как можно узнать какие объекты ликают? кто подобные задачки решал ?
спасибо
Update: Код не мой, достался в наследство. База старая, вся из 2007 года применрно. с базальтовыми наслоениями патернов вплоть до 2015го. черт ноги слоамет там.
перегрузить new ?
Т.е. изучали только две крайние ситуации: когда подключений очень мало и когда их очень много? Может попробовать снять продакшн-трафик разной интенсивности и погонять tcpreplay'ем, например? Начать с середины (30к): течёт - идём в левый подотрезок, не течёт - в правый. Дихотомия быстрая :) Может окажется, что нижнюю границу уже получится валгринду или асану скормить. Ну а так - мы обычно корку ковыряем в подобных случаях.
asan/leaksan?
asan/leaksan очевидно
Обсуждают сегодня