🚰 5 полезных инструментов для обнаружения утечек памяти с примерами |

🚰 5 полезных инструментов для обнаружения утечек памяти с примерами

Обзоры

В этом руководстве я расскажу о различных методах и инструментах для обнаружения и поиска утечек памяти с помощью различных процессов в Linux.

Как разработчик, мы часто сталкиваемся с такими сценариями, когда httpd apache, java начинают потреблять большой объем памяти, что приводит к ситуациям OOM (Out Of memory).

Как отключить Out of memory или oom-killer в CentOS / RHEL

Так что всегда полезно следить за использованием памяти критически важным процессом.

Я работаю с приложением, которое требует большого объема памяти, поэтому моя работа – убедиться, что другие процессы не занимают память без надобности.

В этом процессе я использую различные инструменты в для обнаружения утечек памяти и затем сообщаю об этом ответственным админам.

Что такое утечка памяти?

  • Память выделяется по запросу – с помощью malloc () или одного из его вариантов – и память освобождается, когда она больше не нужна.
  • Утечка памяти происходит, когда память выделяется, но не освобождается, когда она больше не нужна.
  • Утечки, очевидно, могут быть вызваны malloc () без соответствующего free (), но утечки также могут быть вызваны непреднамеренно, если указатель на динамически выделяемую память удален, потерян или перезаписан.
  • Переполнение буфера, вызванное записью после конца блока выделенной памяти, часто приводит к повреждению памяти.
  • Утечка памяти ни в коем случае не уникальна для встроенных систем, но она становится проблемой отчасти потому, что у целевых систем не так много памяти, а отчасти потому, что они часто работают в течение длительных периодов времени без перезагрузки, позволяя утечкам становиться еще больше.
  • Независимо от основной причины ошибки управления памятью могут иметь неожиданные и даже разрушительные последствия для поведения приложений и системы. При сокращении доступной памяти процессы и целые системы могут остановиться, а повреждение памяти часто приводит к неожиданным сбоям.

1. Memwatch

  • MEMWATCH, написанный Йоханом Линдом, представляет собой средство обнаружения ошибок памяти с открытым исходным кодом.
  • Его можно скачать с https://sourceforge.net/projects/memwatch.
  • Просто добавив файл заголовка в свой код и определив MEMWATCH в своей команде gcc, вы можете отслеживать утечки и повреждения памяти в программе.
  • MEMWATCH поддерживает ANSI C; предоставляет журнал результатов; и обнаруживает двойное освобождение, ошибочное освобождение, незафиксированную память, переполнение и недостаточное заполнение и т. д.
Я скачал и извлек memwatch на свой Linux-сервер, как вы можете видеть на скриншоте:
Затем, прежде чем мы скомпилируем программное обеспечение, мы должны прокомментировать приведенную ниже строку из test.c, которая является частью архива memwatch.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий