MEMORY
Posts
10 posts[Linux][Kernel] 슬랩 Slab Memory 소개
리눅스 커널 Memory Management의 꽃 슬랩(Slab)을 소개할께요. 슬랩이 소개 되기 전 리눅스 커널 메모리는 모두 동적 할당을 했어요. 한참 그렇게 메모리를 썼었죠. 그러다가 메모리 성능을 높이기 위한 과제를 리눅스 커널 전문가들이 진행했어요. 여러가지 메모리 성능을 키우는 코드 작업을 진행하다가, 한 가지 조사를 했어요. 뭐나면, 어떤 타입의 메모리를 커널 코드에서 할당하는지에 대해서였어요. 그런데 재미있게도 메모리를 할당하는 패턴이 정해져 있다는 걸 확인했어요. 평범한 서민들이 먹는 식단을 몇 가지가 될까요? 아마 전 먹는 메뉴가 20여 가지로 정해져 있거든요. 비빔밥, 짜장면, 고구마(저녁으로 먹죠), 스타벅스, 삽겹살, 순대… 저 같은 경우는 20가지도 안되는 것 같네요. 그래서
[Kernel] memory leak - debug
가끔 가다가 커널 메모리 누수(memory leak) 이슈가 생길 때가 있어요.OOM Killer가 메모리가 부족하다고 커널이 메시지를 남기며 스스로 자살을 하거나,Low Memory Killer가 너무나도 자주 돌아서 락업 현상으로 검출되죠. 이런 이슈가 나왔을 때 어떻게 디버깅을 하면 좋을까요?한번 정리 좀 해볼께요. 1. 디버그 정보: contig_page_data.node_zones[0--1].free_area 우선 중 High/Low 메모리 Zone 중 어떤 Zone에서 페이지가 부족한 지 점검할 필요가 있어요.만약에 Low 메모리 존에서 메모리가 부족하면 커널 동작으로 포커스를 맞추어야 하구요,아래 경우와 같이 High Memory Zone에 Order 별로 free 페이지가 거의 없으면 더



