top에서 나온 결과는 어떻게 해석을 해야 할까요?

chocoheim의 이미지

현재, 저희가 맡은 프로젝트 서버가 제온4cpu에 4기가 ram 을 가지고 있습니다. 그 서버에 사이트는 두곳 정도 돌고 있는 것으로 알고있구요.
저희사이트 쪽은 apache2 + tomcat4.1.27 이구요.
다른 쪽은 그냥 apache 만 돌고 있습니다.

일반 계정을 받아서 프로그램을 올리는것까지만 저희쪽 담당이고, 나머지 서버 관리같은건 다른쪽에서 담당하고 있는 상태입니다.

문제는 유저도 그리 많지 않은 사이트가 종종 죽는다는 것인데, 메모리 관련 에러가 몇번 나왔습니다. Out of memory Exception 같은거요.

top 를 해보니, 가용메모리가 (freed) 30~40M 정도만 남았더라구요. 톰캣을 stop 시키니까 150 정도로 늘어나더군요.

서버 담당쪽에 문의를 해봤습니다. 그랬더니
"리눅스는 캐쉬를 해서 필요할때 메모리를 할당해주기 때문에, free 로 남은 숫자는 신경쓰지 않아도 된다" 라고 하더군요.

Mem:  3874128k av, 3862368k used,   11760k free,       0k shrd,  207308k buff
                   2986084k actv,      40k in_d,   88060k in_c
Swap: 1048568k av,  509388k used,  539180k free                 1042092k cached

방금전에 top 해본 결과입니다.
이걸 어떻게 해석을 해야 될까요? 남은 메모리는 얼마인지, 실행될 프로그램이 사용할 수 있는 용량은 얼마나 되는지, 잘 모르겠네요.

그리고, 저희쪽 톰캣 말고 다른 사이트의 데몬중에 이런게 있는데,

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME CPU COMMAND
19309 ******    15   0  978M 814M  5920 S     8.5 21.5  18:50   1 httpd

이건 그냥 그대로 978M의 메모리를 먹고 있다고 보면 되는건가요?

p.s. httpd 가 1기가 넘게 리소스를 먹는 경우가 자주 있을까요? 제가 볼때 저 사이트가 저정도로 크지는 않다고 보고 있거든요..

feanor의 이미지

buffer/cache를 제외한 메모리 사용량은 free 명령어로 보실 수 있습니다.

--feanor

atie의 이미지

메모리 에러 관련해서, JVM 버전이 무엇인가요?

----
I paint objects as I think them, not as I see them.
atie's minipage

chocoheim의 이미지

java version "1.4.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)

입니다.

WaitplzplzWait

atie의 이미지

혹시나 1.4.1이길 했는데, memory leak이 있다는 이야기가 있어서...

동일 프로그램을 windows나 linux가 깔려 있는 PC에 설치해 놓고 jprobe 같은 profiler를 써서 코드를 검사해 보는게 어디가 문제가 있는지 빠르게 찾을 수 있는 방법일것 같군요. jprobe에 대한 링크 이고요, 여러 다른 툴도 아래 사이트에서 찾아 볼 수 있습니다.
http://www.javaperformancetuning.com/tools/jprobe/index.shtml

메모리는, 코드에 rt=Runtime.getRuntime(), rt.freeMemory() 해서 찍어보면 될 것 같고, top이 보여주는 free memory는 cached가 많이 잡혀있는 것으로 보아 신경쓰지 않아도 될 듯 합니다.

----
I paint objects as I think them, not as I see them.
atie's minipage

댓글 달기

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