캐쉬메모리와 Free 메모리 할당

sangheek의 이미지

HDD Disk에 write하는 데이터 양이 매우 많은 애플리케이션을 개발하는데 리눅스는 메모리 영역을 캐쉬로 다 할당해서 써서 top을 해 보면 실제 free memory가 매우 적게 보입니다.

커널 프로그램에 보면 메모리 영역을 캐쉬로 사용하기 위한 MIN값이 있다고 하는데 어느 부분인가요?

아니면 셀 프롬프트 상에서 수정할 수 있는 방법은 없는지요?

a287848의 이미지

말씀 하신 cache 가 어떤 cache 인지는 모르겠습니다.

만약 I/O 작업 때문에 생기는 cache 라면 (ext2 , ext3 가 사용하는 Bitmap

cache 라면) EXT_MAX_GROUP_LOADED 라는 상수값에 버퍼의 크기

를 저장할수 있습니다. (ext2 의 경우는 linux/include/linux/ext2_fs_sb.h

에 있습니다.)쓰기 작업때 사용된 블럭에 대한 inode buffer 하고 bitmap

buffer 를 계속해서 캐쉬 하기 떄문이 아닐까

합니다.

Dig it.

flyduck의 이미지

page cache나 buffer cache를 말하는 거라면 대개의 경우 별로 신경쓸 필요가 없습니다. free memory가 적게 나온다고 하더라도 커널은 메모리가 필요하면 알아서 cache 크기를 줄이기 때문에 프로그램 실행에 영향을 미치지 않습니다.

커널 내부에는 memory zone마다 min, low, high watermark를 가지고 메모리 사용을 조정합니다. 이는 어느정도 free memory가 남았을 때 메모리를 더 확보할지 여부를 결정합니다. 이것은 prompt 상에서 바꿀 수는 없고, 커널 코드 상에서 바꿀 수 있습니다.

다른 것으로 메모리를 확보하는 시점에서 이를 하는 방법들을 조정할 수 있습니다. /proc/sys/vm 밑에 있는 vm_passes나 vm_cache_scan_ratio 같은 것을 바꿔볼 수 있습니다. dirty buffer를 해제하는 것과 관련해서는 bdflush 같은 파일을 건드려볼 수 있습니다.

Freedom is another word for nothing left to lose,
Nothing doesn't mean nothing if it ain't free.

댓글 달기

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