<div><br></div> <div>저는 지금 임베디드 장비에 올릴 OS 개발쪽을 담당하고 있습니당</div> <div><br></div> <div>다름이 아니고.. 제가 개발한 기능 포함 OS 전체적으로 개발 test 중인데</div> <div><br></div> <div>시간이 지날수록 memory 사용률이 올라가다가 out of memory 발생하여 임베디드 장비가 rebooting 되버립니다</div> <div><br></div> <div>linux 에서 memory leak이 어디서 발생하는지 알수 있는 방법이 있을까요?</div> <div><br></div> <div>일단 제가 해본 방법으로는 다음과 같습니다.</div> <div><br></div> <div>1. 장비에서 slabtop 으로 조회한 결과, 아래와 같이 kmalloc-32, kmalloc-192 에 대해 점차적으로 size 및 slabs 항목의 값이 시간이 지날수록 커집니다.</div> <div>메모리 할당 관련해서는 kmem_cache_create(), kmem_cache_alloc(), kmem_cache_free() 를 사용하였습니다</div> <div><br></div> <div> <div> OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME </div> <div>428800 428768 99% 0.03K 3350 128 13400K kmalloc-32</div> <div>382914 382877 99% 0.19K 18234 21 72936K kmalloc-192</div></div> <div><br></div> <div>2. 장비에서는 valgrind와 같은 memory leak 확인을 위한 프로그램을 실행시킬 수 없습니다..</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.