linux /proc/pid/maps 매핑되지 않은 다수의 row(a lot of un-mapping address)

air2015의 이미지

안녕하세요.

환경
- os : gentoo linux
- language : c++
- compiler : gcc 4.6.3
- socket, oracle, mysql

/proc/pid/maps의 메모리 정보를 확인해보니 다음처럼 보입니다.

00400000-0041b000 r-xp 00000000 08:07 404294369 /home/kkk
0061a000-0061b000 r--p 0001a000 08:07 404294369 /home/kkk
0061b000-0061c000 rw-p 0001b000 08:07 404294369 /home/kkk
0061c000-00663000 rw-p 00000000 00:00 0 [heap]
7f18697cb000-7f18697cc000 ---p 00000000 00:00 0
7f18697cc000-7f1869fcc000 rwxp 00000000 00:00 0 [stack:28226]
7f1869fcc000-7f1869fcd000 ---p 00000000 00:00 0
7f1869fcd000-7f186a7cd000 rwxp 00000000 00:00 0 [stack:28224]
7f186a7cd000-7f186a7ce000 ---p 00000000 00:00 0
7f186a7ce000-7f186afce000 rwxp 00000000 00:00 0 [stack:28222]
7f186afce000-7f186afcf000 ---p 00000000 00:00 0
7f186afcf000-7f186b7cf000 rwxp 00000000 00:00 0 [stack:28220]
7f186b7cf000-7f186b7d0000 ---p 00000000 00:00 0
7f186b7d0000-7f186bfd0000 rwxp 00000000 00:00 0 [stack:28218]
7f186bfd0000-7f186bfd1000 ---p 00000000 00:00 0
7f186bfd1000-7f186c7d1000 rwxp 00000000 00:00 0 [stack:28215]
7f186c7d1000-7f186c7d2000 ---p 00000000 00:00 0
7f186c7d2000-7f186cfd2000 rwxp 00000000 00:00 0 [stack:28213]
7f186cfd2000-7f186cfd3000 ---p 00000000 00:00 0
7f186cfd3000-7f186d7d3000 rwxp 00000000 00:00 0 [stack:28212]
7f186e7d5000-7f186e7d6000 ---p 00000000 00:00 0
7f186e7d6000-7f186efd6000 rwxp 00000000 00:00 0
7f1870fda000-7f1870fdb000 ---p 00000000 00:00 0
7f1870fdb000-7f18717db000 rwxp 00000000 00:00 0
7f18737df000-7f18737e0000 ---p 00000000 00:00 0
7f18737e0000-7f1873fe0000 rwxp 00000000 00:00 0
7f1874fe2000-7f1874fe3000 ---p 00000000 00:00 0
7f1874fe3000-7f18757e3000 rwxp 00000000 00:00 0
7f18757e3000-7f18757e4000 ---p 00000000 00:00 0
7f18757e4000-7f1875fe4000 rwxp 00000000 00:00 0
7f1876fe6000-7f1876fe7000 ---p 00000000 00:00 0
7f1876fe7000-7f18777e7000 rwxp 00000000 00:00 0
7f18777e7000-7f18777e8000 ---p 00000000 00:00 0
7f18777e8000-7f1877fe8000 rwxp 00000000 00:00 0
7f18787e9000-7f18787ea000 ---p 00000000 00:00 0
7f18787ea000-7f1878fea000 rwxp 00000000 00:00 0
7f18797eb000-7f18797ec000 ---p 00000000 00:00 0
7f18797ec000-7f1879fec000 rwxp 00000000 00:00 0
7f1879fec000-7f1879fed000 ---p 00000000 00:00 0
7f1879fed000-7f187a7ed000 rwxp 00000000 00:00 0
7f187a7ed000-7f187a7ee000 ---p 00000000 00:00 0
7f187a7ee000-7f187afee000 rwxp 00000000 00:00 0
7f187afee000-7f187afef000 ---p 00000000 00:00 0
7f187afef000-7f187b7ef000 rwxp 00000000 00:00 0
7f187b7ef000-7f187b7f0000 ---p 00000000 00:00 0
7f187b7f0000-7f187bff0000 rwxp 00000000 00:00 0
7f187c7f1000-7f187c7f2000 ---p 00000000 00:00 0
7f187c7f2000-7f187cff2000 rwxp 00000000 00:00 0
7f187cff2000-7f187cff3000 ---p 00000000 00:00 0
7f187cff3000-7f187d7f3000 rwxp 00000000 00:00 0
7f187d7f3000-7f187d7f4000 ---p 00000000 00:00 0
7f187d7f4000-7f187dff4000 rwxp 00000000 00:00 0
7f187dff4000-7f187dff5000 ---p 00000000 00:00 0
7f187dff5000-7f187e7f5000 rwxp 00000000 00:00 0
7f187e7f5000-7f187e7f6000 ---p 00000000 00:00 0
7f18837ff000-7f1883800000 ---p 00000000 00:00 0
......

문제는 7f18837ff000-7f1883800000 ---p 00000000 00:00 0
이런 형태의 매핑 정보가 점점 늘어가고 있습니다.

메모리 누수가 있는것인지? 동적 할당된 메모리는 모두 해제한 것으로 체크되는데,
데몬이 시작된 이후 미세하게 프로세스의 할당 메모리가 조금씩 늘어가는 것으로 확인됩니다.

아래에서 VmRSS(Resident set size)가 점점 미세하게 늘어갑니다.

Name: kkk
State: S (sleeping)
Tgid: 32346
Pid: 32346
PPid: 32345
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 100 100 100 100
FDSize: 256
Groups: 16 100
VmPeak: 16184628 kB
VmSize: 4912692 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 12041416 kB
VmRSS: 229004 kB
VmData: 4679744 kB
VmStk: 136 kB
VmExe: 108 kB
VmLib: 161584 kB
VmPTE: 5468 kB
VmSwap: 0 kB
Threads: 5
SigQ: 0/2326323
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000081001
SigCgt: 00000001c18004fe
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: ffffffff
Cpus_allowed_list: 0-31
Mems_allowed: 00000000,00000003
Mems_allowed_list: 0-1
voluntary_ctxt_switches: 267
nonvoluntary_ctxt_switches: 0

동일 환경에서 구동되는 다른 데몬은 이런 상황이 없는데
메모리 누수인지 어떤 상황인지 선배님들의 의견 듣고 싶습니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.