리눅스의 메모리 관리

spacelee의 이미지

이 게시판에서 많이 나온 내용이기는 한데,
몇 시간째 검색해봐도 제가 원하는 속시원한 대답을
찾기가 어려워서 다시 올려봅니다.^^;;

<현상>

app가 메모리릭이 없어도 malloc, free를 자주하면
top이나 'free'명령어에서는 app가 사용하는 메모리가
계속 올라가는 것처럼 보이는 현상이 있습니다.
리눅스 쓰시는 많은 분들이 경험하시는 내용인 것 같구요.
게시판에서도 종종 언급된 걸 봤습니다.

<질문>

1. 이 현상은 도대체 리눅스가 메모리를 어떻게 관리하고,
top, 'free'명령어는 도대체 몰 보여주길래 그런 것인가?

2. app의 메모리가 shrink되어서 정말 사용하는 메모리만
top에서 보여주는 방법은 없는 것인지?
혹은 정확히 보여주는 다른 명령어가 있는지?
(목적 : 일반 서버 운영자를 안심시키고 싶습니다.)

이런 문제에 대해서 아시는 분 좀 알려주세요.^^;;
다른 포스트를 알려주셔도 감솨..
제 검색 실력이 모지라는 것인지..ㅜㅜ

spacelee의 이미지

제가 여러가지 자료를 찾다가 간단한 힌트를 보고
테스트를 해봤습니다. (리눅스 기준)

glibc의 mallopt 옵션을 쓰면 (M_TRIM_THRESHOLD)
지정된 사이즈 이상의 메모리가 free될때 sbrk를 써서
데이터 사이즈 영역을 줄여준다고 하더군요.

1. mallopt 테스트 결과

그래서 mallopt를 써서 (M_TRIM_THRESHOLD)
이 값을 1byte로 바꾸고 테스트 해봤는데
안줄어드는 것 같습니다. ㅡㅡ;;
이건 또 왜 그런 것인지..ㅜㅜ

2. malloc에서 mmap을 쓰는 경우와 아닌 경우의 차이

malloc에서 heap에서 메모리를 빼오는 경우와
mmap을 쓰는 경우의 차이가 있고(glibc malloc.c 소스에서 봣습니다.)
mallopt에서 그 기준값을 바꿔줄 수 있다고 해서 바꿔줘봤는데,
역시 top에서는 차이가 없습니다.

이런 현상들에 대해서
어떤 도움 말씀이라도 주시면 감솨~ㅜㅜ

권위를 의심할 것,어긋남을 존경할 것,자리잡기를 거부할 것,항상 자신을 재창조할 것 - MIT 미디어랩 -

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.