memory leak(메모리 누수) 관찰기..????

최근에 진행중인 프로젝트에서 갑자기 가입자가 날라가는 크리티컬한 버그가 발견.. -_-;;


대충 원인을 파악해보니 해당 프로세스가 메모리가 계속적으로 증가하다가 4일정도 돌리면 메모리 부족으로 죽으면서 가입자가 유실되는 듯한.. 쿨럭..;;


또 머리 아픈 memory leak을 잡아야 하는데... top 으로 계속 보는것도 좋지만 다음과 같이 script를 하나 짜서 정말로 heap 영역이 증가하는지 확인하는것도 하나의 방법~


while true

do ps -ef | grep a.out | sed '/grep/d' | awk '{print $2}' | while read pid

do pmap $pid | grep total

done

sleep 1

done


뭐.. 별거 아닌 스크립트지만 나름 유용하게 사용 가능하며 응용하면 잘 쓸 수 있지 않을까? 


1초 주기로 계속해서 pmap의 total 값의 증가를 지켜보는건데 이렇게 해서 확인 결과 정말로 늘어나는걸 확인


어떤게 원인일까 추적중에 SQL Statement Handle을 Alloc하고 Free하지 않는 코드가 있음을 확인하여 수정하고...


오늘로 3일째 관찰중..-_-;;


아직까지는 메모리 증가하는건 없지만, 정말로 memory leak으로 인해서 날라가는지 확인하기 위해 지속적으로 관찰중... -0-


ps. 원래는 valgrind 신봉자이지만.. -_-;; 

shell script + perl + DBI + DBD + unixODBC + 자체 ODBC가 엮여 있다보니 valgrind로 돌려도 별 그렇다할게 못 나와서 뻘짓중.. ㅠㅠ


ps2. valgrind 는 memory leak을 확인하는데에 있어서는 킹왕짱~!

valgrind -v --trace-children=yes --leak-check=full --show-reachable=yes process_name

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 아비숑 | 2009/09/18 09:32 | IT Life | 트랙백 | 덧글(0)

트랙백 주소 : http://mirr187.egloos.com/tb/2440057
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶



'="text/javascript" src="http://allblet2.allblog.net/allblet2.js">
이글루링크 취소