LINUX.ORG.RU

Профилирование собранного бинарника без исходников

 ,


0

1

Джентльмены, доброго времени суток!

На одной машине есть два идентичных процесса. Со старта оба кушают по 6% cpu. Через сутки один из них жрет 80%, второй как был 6%, так и остается.

Нет ли в ваших светлых головах мыслей, как бы отпрофилировать прожорливого негодяя?

В чем сложность:

Данные процессы являются платформами для построения HMI, писаными на Qt. Внутри они крутят «пользовательский код», писаный на неком подобии С и вполне-себе python'е. Есть подозрение что это кривые наши (команды) ручки накосячили в «пользовательском коде». Соответственно, нужен некий способ понять не только, какой самый тормозной вызов внутри HMI, но и понять какие параметры вызова делают его самым тормозным, чтобы определить какой скрипт портит нам все малину.

Upd: OS - SLES 11

Upd2: Эмпирическим путем нашли причину. Всем спасибо!

★★★★★

Последнее исправление: RedPossum (всего исправлений: 2)
Ответ на: комментарий от UVV

Доступ к пользовательскому коду есть, но его слишком много и он слишком неструктурирован, чтобы аналитически понять проблему за вменяемое время.

RedPossum ★★★★★
() автор топика
Ответ на: комментарий от UVV

Вряд ли, порожденный процессов при этом не наблюдается. Про С местного разлива точно знаю что это и не С вовсе, а какой-то самописный интерпритатор. Про python не уверен: оно точно видит системный path и пакеты из pip, но отдельного интерпретатора в процессах не наблюдается.

RedPossum ★★★★★
() автор топика
Ответ на: комментарий от RedPossum

попробуй начинать с более общей оценке типа strace -p pid и просто проанализировать их на какие сисколлы они юзают

pinachet ★★★★★
()
Ответ на: комментарий от pinachet

оно много поточное и там юзается порочная практика nanosleep для синхронизации ?

Код не видел, не в курсе. Должно быть многопоточным.

RedPossum ★★★★★
() автор топика

perf top запустить на обеих

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.