메모리 누수 확인 방법

OS/Linux 2013. 1. 10. 09:39 Posted by 이정식

메모리 누수를 발견하는 방법
1. 프로세스의 스레드 스택 수를 계산한다. 실행중인 활성 스레드와 종료된 스레드의 수가 포함된다
pmap PID | grep pid번호 | wc -l

2. 프로세스의 실행중인 활성 스레드 수를 계산한다
스레드가 작성될때마다 /proc/PID/task 에 한 항목이 추가된다.
결합이던 분리된 스레드이건 상관없이 /proc/PID/task 에서 해당 항목이 제거되므로
다음과 같이 스레드 수를 확인할수 있다
ls /proc/PID/task | wc -l

3. 스택과 활성화된 스레드 수를 비교하여 문제점을 파악한다.
기존 스레드 스택수가 실행중인 활성 스레드 수보다 크고 프로그램이 계속 실행되는 동안 이러한 두 수의 차이가 커지면 메모리 누구가 발생하고 있는것이다

4. 예방할수 있는 방법은
결합 가능한 스레드를 작성할때 pthread_join()을 호출함을 잊지 말아야한다.