스왑을 메모리의 두 배로 잡아주라는 이유가 궁금합니다.

ceraduenn의 이미지

윈도 사용시에도 가상 메모리를 메모리의 두 배 정도로 잡아주라는 말을 많이 들어왔구요.

리눅스를 설치할 때도 여러 입문서들을 보면 스왑 파티션을 메모리의 두 배로 잡아주라고 써져 있네요.

한가지 드는 의문은 64MB의 메모리를 쓰는 사람이 128MB정도의 스왑을 잡고, 512MB의 메모리를 쓰는 사람이 1G 정도의 스왑을 잡아야 하는가 라는 것입니다.

대부분의 자료들에서 그렇게 언급되어 있는 것이니 의미가 있는 것일텐데 말이죠.

차라리 "실제 메모리와 스왑을 합쳐 512MB가 되도록 잡아주세요" 라는 식이면 이해하기 쉽겠는데요..

너무 초보틱한 질문이라서 제출버튼을 누르기가 민망할 정도지만, 호기심을 이기지 못하고 삼가 올려봅니다.

warpdory의 이미지

특별한 일이 없는 이상 요새처럼 메모리가 넘치는 시대(?)에는 2배까지는 필요없습니다. 예전에 기본 메모리가 부족할 때 쓰던 버릇정도로 보시면 됩니다.

일반적으로 스왑메모리는 메인 메모리가 다 차고 나서 모자랄 때 사용하는데, 요새처럼 기본이 512MB 고, 1,2 기가바이트씩 쓰는 사람들이 흔한데.. 굳이 2배를 잡을 필요는 없습니다. 물론, 요새 하드디스크도 기본이 160 기가바이트나 200 기가바이트에서 250 기가바이트를 넘어서 300 을 향하고 있는데... 1,2 기가바이트는 그다지 크게 와 닿지도 않습니다.

하지만, 가끔 프로그램 버그로 인하여 메모리를 많이 먹는 경우가 발생합니다.
오픈오피스 2 (버전은 2.0.0) 가 나왔는데, 제 경우에는 제 졸업논문 ppt 파일을 불러 오면 메모리를 마구 먹다가 스왑까지 꽉 차면서(스왑으로 3기가바이트 잡아 놨습니다.), 그 뒤에는 뻗어 버리는 경우를 볼 수 있습니다. 아마 2.0.1 이나 2.0.2 쯤에는 고쳐질 것 같습니다만.. (1.x 때는 없던 현상입니다. 이래서 제가 .0 으로 끝나는 버전의 프로그램은 안 씁니다.) 어쨌건 메모리를 무지하게 먹어대죠. 이럴 경우, 스왑파티션이 크면 최소한 죽을 때까지의 시간을 몇십초라도 연장시킬 수 있으니 kill -9 PID 로 ... 오핀오피스를 죽일 시간 정도는 벌 수 있고, 시스템이 뻗어 버리는 현상까지 안 가도록 막을 수는 있습니다.

그냥 넉넉하게 1,2 기가 쯤 잡으시면 특별한 일 없다면 별 문제 없습니다.
혹시 DB 나 그래픽쪽을 하신다면 더 크게 잡아주셔야 하지요.


---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도

즐겁게 놀아보자.

익명 사용자의 이미지

warpdory wrote:
특별한 일이 없는 이상 요새처럼 메모리가 넘치는 시대(?)에는 2배까지는 필요없습니다. 예전에 기본 메모리가 부족할 때 쓰던 버릇정도로 보시면 됩니다.

예 warpdory님의 말씀이 맞습니다.
예전에 스왑 메모리를 물리 메모리의 두배를 잡아 주던 까닭은
프로세스의 Core dump를 받을 수 있도록 하기 위한 까닭도 있었습니다만,
요즘 상황에는 별로 맞지 않는 다고 보입니다.
(예전에는 core dump가 디버깅이나 문제 해결시에
아주 중요한 자료 였습니다.
요즘에도 개발시에는 많이 참고가 됩니다만,
요즘 많이 쓰이는 웹 어플리케이션 에는 별로 쓸모가 없죠.)
일반적으로 1G ~ 2G 스왑메모리를 모두 사용 하기 전에 다운 될겁니다.

별 생각 없이 책에 그렇게 나와 있으니까 그렇게 셋팅하시는 분들도 있습니다만,
적당한 사이즈를 잡아 주시면 되겠습니다.
(갑자기 메모리 요청이 몰렸을때 견딜 수 있을 정도로..)
경험상 일반적으로 100M~200M 정도는 늘상 사용 하더군요.

오히려 스왑을 많이 잡으면 memory leek 이 발생하고 있는지
모를 수도 있습니다.

cronex의 이미지

보통 대부분의 OS에서는 가상 메모리를 사용합니다.
즉 실제 물리 메모리를 가상메모리에 사상 시켜서 사용을 하는데요.
이경우 가상 메모리에는 올라온 것으로 처리되어있지만 실제 물리메모리에는 올라와 있지 않은 부분을 스왑 파티션(윈도우에서는 페이지 파일)에 저장을 합니다.
보통 스왑을 메모리의 최소 1.5배에서 2배~2.5배까지 잡아주라는 의미는 경험적으로 얻어진 결과입니다.
그 정도로 하니 속도상에도 문제 없고 용량도 적당하더라.... 라는 거죠.
특히 윈도우즈는 그런 부분에 있어서 스왑 용량은 최소 2배로 해서 크기를 고정시켜둬야 합니다. 윈도우즈는 스왑 용량이 모자르면 페이지 파일을 크게 만드는 작업을 하는데 그렇게 되면 윈도우즈 사용 도중에 파일 크기를 증가시키는 작업을 하기 때문에 매우 느려지고 가끔 시스템이 먹통이 되는 경우도 생깁니다.
그리고 그 결과물로 페이지 파일 자체가 디스크 상에서 커다란 한 덩어리의 파일이 아닌 드믄드믄 떨어진 조각난 파일이 되기 때문에 파일에 접근 하는 작업이 매우 느려지죠.
그래서 저는 윈도우즈를 깔면 제일 먼저 하는 세팅이 페이지 파일을 메모리의 2.5배정도로 잡고 크기를 최소 최대를 같게 설정하여서 윈도우즈가 크기를 임의로 변경시키지 못하도록 합니다. 그리고 여타 다른 툴을 사용하여 그 페이지 파일을 조각모음 하도록 하죠.

------------------------------------------------------------
이 멍청이~! 나한테 이길 수 있다고 생각했었냐~?
광란의 귀공자 데코스 와이즈멜 님이라구~!

댓글 달기

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