리눅스 메모리 사용관련 디버깅 정보

최근에 리눅스 환경에서 메모리 사용에 관련한 문제에 직면해서 이것저것 알아낸 지식을 정리해본다.

  • 메모리 누스 검사기 : valgrind
    일종의 VM 환경에서 사용자의 프로그램을 실행시켜 각종 메모리 관련 문제를 찾아준다.
    실행 속도가 좀 늦어지는게 문제이긴 한데, 쓸만한 문제점 이슈를 많이 찾아주는 고마운 툴이다.

  • glibc 의 hook 함수
    glibc 를 쓰고 있다면 malloc(), free() 의 사용을 hooking 할수가 있다.
    __malloc_hook, __free_hook 에다가 자신만의 hook 함수를 설치할수가 있다.

  • malloc() 의 사용 현황
    glibc 를 통한 malloc() 의 활동 현황을 보고 싶으면 mallinfo() 함수를 이용하면 된다.
    기타 glibc 의 memeory allocator 관련해서 많은 정보를 알고 싶으면 gnu glibc 홈피를 방문해라.
    (http://www.gnu.org/s/libc/manual/html_node/Memory.html)

  • Google Performance Tools
    glibc 의 memory allocator 성능에 만족하지 못하시는 분들은, 구글의 성능 툴을 시험해 보시라.
    http://goog-perftools.sourceforge.net/

  • Linux(32bit) 에서 User Process 의 메모리 사용 한계
    32bit Linux 에서 한 User Process 가 쓸수 있는 메모리의 한계는 3G 이다. 1G 는 커널 영역으로 맵핑되어 있다.
    특정 커널(hugemem)에서는 4G/4G 맵핑을 지원하기도 했었는데, 더이상의 패치가 나오지 않는것으로 보아 지원이 중단된듯 하다.
    실행중인 프로세스의 메모리 팹핑을 보고 싶다면 "pmap -d <pid>" 를 돌려봐라.
    한 프로세스에서 3G 이상의 메모리가 필요하다면 ram disk 형식으로 사용하는것을 고려해봐라.

  • Thread Stack
    자신의 프로세스가 많은 thread 를 사용하는 방식인데, 메모리가 모자라다면 stack 설정을 확인해라.
    CentOS 5의 경우 기본 stack size가 10M 인데, 이 경우 thread 를 100 개 만들면 stack 메모리에만 1G를 까먹게 된다.

16bit 에서 32bit 로 넘어갈때 메모리가 없어서 Hi Memory, Extended Memory, Expanded Memory 등의 기술이 생겨나던때가
불과 십몇년전 같은데, 세상 참 빠르다. 32bit 메모리가 모자라서 문제를 겪게 되다니.
앞으로 또 10년 안에 64bit address space 가 모자라는 상황을 겪게 되겠지? 상상이 안되는 구나. ㅎㅎ

by 철이 | 2010/04/08 11:38 | 코드의 연금술사 | 트랙백 | 덧글(0)

가난뱅이의 역습



- 마쓰모토 하지메 지음


난 가난한 사람도 행복하게 살아갈수 있는 세상을 꿈꾼다. 옛날에는 경제적으로 힘든 사람들도 '희망' 이라는것이 있었기에
행복할수 있었다. 하지만 이제 점점 더 세상은 가난한 사람에게 '희망' 을 꿈꿀수 없는 세상이 되어버린다.

프로가 되지 않으면 살아남을수 없는 세상. 프로중에서도 극소수의 승자만이 모든것을 독식하는 세상.
중산층은 점점 없어지며 최상층이 되지 못하면 모두 다 끊임없이 챗바퀴를 돌려야만 살아갈수 있는 세상.
(어쩌면 그 일류인생 조차도 쉬운 인생이 아닐지도 모른다)

저자는 정말 극소수의 부자들을 빼고는, 모두다 힘든 인생을 살아가야하는 우리에게 아주 급진적인 해결책을 제시한다.
"걍 돈없이 살면 돼~"

돈 없이도 먹고, 자고, 충분히 행복하게 자기 삶을 누릴수 있는 방법을 저자는 몸소 실천하며, 자신의 이야기를 책으로 썼다.
(보니깐 "아마추어의 반란" 이라는 다큐멘타리 영화도 찍었나보다.)

내용은 상당히 골때리지만 통괘한 이야기들로 가득차 있다. 일종의 실용서라고 볼수도 있기때문에 읽어두면 불의의 상황에서 당황하지 않고 대처해나갈수 있을것 같다.


* 왠지 같이 읽으면 좋을것 같은 책들

- 88만원 세대
- 삼미 슈퍼스타즈의 마지막 팬클럽

by 철이 | 2009/09/21 22:30 | 책 이야기 | 트랙백 | 덧글(0)



- 베르나르 베르베르 지음

베르베르의 소설은 "나무" 이후로 읽고나서의 감흥이 많이 떨어지는것 같다. 지난번 "파피용" 도 그렇고 이번 "신" 도 마찬가지.
초월적 존재에 대한 궁금증은 요즘들어 나도 부쩍 늘어나버렸는데, 책을 읽으면서 과연 베르베르는 이 질문을 어떻게
풀어나갈지 무척궁금했다.
초반에 그리스 신화의 설정들과 수많은 프랑스 인물들로 인해서 약간의 꺼리낌이 있었지만, 중반으로 넘어가면서
제법 많이 몰입하게 되었다. 그러다 마지막 6권에 들어서면서 왠지 그 흐름이 아주 빨라지더니 먼가 기대이해의 결말!
아.. 조금 아쉬웠다. 기발하지 않다고 볼순 없지만 어느정도 예상이 가능했던 결론이였다. (중간중간 결말이 복선으로
등장하여 그 임펙트가 더 약해진것 같기도 하다.)

역시 인간의 상상력만으론 뭔가 납득할 만한 초월적 존재에 대한 설명을 하기란 쉽지 않은가 보다.

by 철이 | 2009/09/21 22:08 | 책 이야기 | 트랙백 | 덧글(0)

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