스왑 파티션은 얼마나 커야합니까?


10

몇 년 동안 RAM의 이중 공간을 가진 스왑 파티션을 만드는 것이 좋습니다. 오늘도 여전히 적용됩니까? 아니면 더 이상 필요하지 않습니까?

RAM이 8GiB 인 서버가 있고 스왑 파티션을 만들어야하는데 16GiB가 너무 많은지 궁금했습니다.


답변:


11

8GB의 물리적 RAM 인 큰 시스템에서는 일반적으로 2GB의 스왑을 할당합니다. 이들은 Oracle 또는 PostgreSQL을 실행하는로드 된 데이터베이스 서버입니다. 몇 년 동안, 나는 부하가 큰 상황에서도 스왑 히트를 본 적이 없습니다. 약 100-150 명의 사용자가 약 10,000 번의 SQL 읽기를 수행하고 분당 2,500 개의 쓰기를 수행합니다.

또한 스와핑 수준을 조정하여 스와핑을 방지하고 실행이 필요하지 않은 불필요한 프로세스를 끕니다. (커스텀 리눅스 빌드)

위에서 언급했듯이 Eddie와 마찬가지로 1x 물리적 RAM은 4GB 미만의 모든 경우에 적합한 경험입니다. 저는 Fortune-500 대기업의 대기업을위한 맞춤형 Linux 빌드를 수행하고 있으며 이들은 일반적으로하는 일이며, 지난 5 년 동안이 문제에 대해 상담해 본 적이 없었습니다.

더 큰 시스템 : 32GB 및 64GB RAM이 장착 된 64 비트 Linux는 Oracle 데이터베이스 서버이며, 일반적으로 Eddie와 같은 사항에 대해 2GB의 스왑을 유지합니다. 유휴 프로세스는 스왑 성 설정에 따라 스왑으로 이동됩니다.


5

영원한 질문입니다. 슬래시 도트 (SlashDot) 의 좋은 사람들 은 이것에 대해 얼마 전에 논의했습니다. 그들이 무엇을 말했는지 확인하십시오.

  • 디스크 공간은 최신 HDD의 문제가 아니며 16GB는 여전히 최신 TB 드라이브의 경우 사소한 양입니다.
  • 그러나 메모리 관리가 불량한 경우 상당한 스왑 공간이 문제가 될 수 있습니다.

2 시간 동안 4GB 영화를 보면 많은 메모리 관리자가 모든 데이터를 캐시하려고 시도하는 것이 좋을 것이라고 결정합니다. 영화의 중간 쯤에 다른 모든 실행중인 프로그램은 한 시간 동안 사용되지 않았으며 4GB 이상의 파일을 캐싱하기 위해 안전하게 바꿀 수 있다고 생각합니다. 결과적으로 영화를 본 후 프로그램의 절반이 스왑 아웃되어 시스템이 느려져 스왑 파일 전체가 손상됩니다.

  • 결국 올바른 결정은 야구장 공식이 아닌 메모리 요구 사항에서 이루어져야합니다.

[매일 사용하고자하는 프로그램을 실행할 RAM이 충분한 경우]라면 스왑을 사용할 이유가 없습니다.


3

답변을 참조하십시오 고 메모리 시스템의 SWAP 공간은 얼마입니까? 귀하의 질문이 더 일반적이지만 몇 가지 지침을 제공합니다. 이것에 대한 의견은 다양하지만 일반적으로 1GiB 이상의 RAM을 가진 사람들은 스왑없이 또는 스왑으로 1x 메모리를 사용하는 것으로 보입니다.

너무 많은 RAM을 사용하여 스와핑을 수행하지 않을 계획이더라도 스왑으로 최소 1x 메모리를 사용하는 데는 가치가 있습니다. 예를 들어 디스크 나 IO 버퍼에 해당 메모리를 대신 사용할 수 있습니다.


3

시스템이 최대 절전 모드로 전환 한 다음 성공적으로 다시 시작할 수있을 것으로 예상되면 :-) 스왑 파티션에 실제 RAM 용량보다 더 많은 공간을 할당하는 것이 좋습니다.


3

내 VPS 공급자는 서버를위한 스왑 공간도 제공하지 않으며 서버 없이도 제대로 실행되고 있습니다.

직장에서 매일 보는 대부분의 서버는 스왑이 없습니다.

편집하다

그러나 - 당신은 JVM을 실행하는 경우, 확인 하십시오 당신은 적어도 당신이 할만큼 스왑 공간으로 지금까지 설정 -Xmx때문에의 알려진 문제 는 JVM과 함께.

요컨대, JVM이 현재 사용중인 것보다 더 많은 메모리를 필요로 할 때 (그러나 여전히 적중하지 않은 경우 Xmx),

  • 디스크로 교체
  • 새로운 메모리를 할당
  • RAM으로 다시 읽음

이것은 교환이 귀하보다 적 으면 Xmx실패 할 수 있음을 의미합니다 .

버그 보고서를 인용하려면

가장 좋은 방법은이 오류가 발생한 시스템에서 스왑 크기를 늘리는 것입니다.

JVM으로 작업 할 때 안전하게 재생하려고하고 스왑을 동일한 물리적 메모리로 설정하십시오.


2

최신 하드 디스크 드라이브의 속도를 감안할 때 큰 스왑은 스 래싱에 대한 초대입니다. SSD는 이러한 추세를 거꾸로 할 수 있지만 디스크의 최대 전송 속도는 300MB / s이므로 2-4GB로 교체하는 데 시간이 오래 걸립니다.

예전에는 (예 : Linux 1.2, i386, SunOS 4.x) 아마도 5 ~ 15MB의 데몬 프로세스와 4-32MB의 RAM 및 I / 실제 성능에 영향을주지 않으면 서 O를 교체 할 수 있습니다. 사용자 프로그램에 2-3MB 정도의 RAM을 사용할 수 있기 때문에 더 좋습니다. 스와핑은 많은 의미가있었습니다.

이제 내 환경에서 대부분의 서버에는 단일 메모리가 많은 워크로드가 있고 RAM을 상당히 정확하게 추정 할 수 있습니다. 긴급 상황, 런 어웨이 프로세스 등을 위해 스왑이 있습니다.

예외는 노트북과 잘 수있는 워크 스테이션을위한 것입니다. 많은 OS에서 스왑 영역을 사용하여 일시 중단 이미지를 저장하며이 경우 스왑은 실제 메모리보다 커야합니다. suspend2 / tuxonice가있는 Linux에서는 디스크 일시 중단을 지원하기 위해 스왑 크기가 2xRAM이어야합니다.


예전에는 System V 3.2 및 이전 버전에서는 정확히 RAM 크기의 스왑을 사용했습니다. BSD만큼 정교한 가상 메모리 시스템이 아니기 때문에 더 적은 부분이 더 이상 낭비되지 않고 더 이상 낭비되지 않았습니다.
kmarsh

2

요즘 32GB 또는 64GB 서버를 실행하는 경우 기본적으로 4GB의 스왑이 안전한 금액입니다. 이보다 큰 것은 사용 가능한 물리적 RAM이 너무 많기 때문입니다.


1

이상적으로는 스왑을 전혀 사용하지 않을 것이며 2x RAM은 실제로 몇 년이 지난 후에 남은 것입니다.

당신이 그것에 대해 걱정한다면, 나는 다음과 같은 것을 할 것입니다 :

Max Memory Requirement - Physical Ram = Swap

16GB는 개인적으로 너무 큰 소리라고 생각합니다.


1

예전에는 당신이 원하는만큼 많은 것을 원했지만 현대 * nix 커널의 메모리 소비는 과거의 일입니다. 오래된 말은 "2x 당신의 기억"이었습니다. 오늘날 2GB 또는 머신이 램에 사용하고있는 공간의 양 사이에 필요한 곳에 가까이 갈 수 있습니다.


1

또한 스왑은 커널 패닉 후 덤프를 저장하는 데 사용됩니다. 이러한 덤프를 분석하고 다른 덤프 대상을 지정하지 않은 경우 스왑은 RAM보다 커야합니다.


0

필요한 스왑 양을 알려주는 단일 알고리즘이 없습니다. 실제로 시스템을 지원하려는 최대 부하로 설정하고 실제로 사용하는 리소스의 양을 찾아야합니다. 스왑 파일을 적절히 설정하십시오.

물리적 RAM의 경우 시스템을 처리 할 실제 "크루즈"로드에 배치하고 그에 따라 구매해야합니다. 지연 시간이 짧은 시스템의 경우 크루즈로드 내부에서 전혀 스와핑하지 않아야합니다 (스왑이 할당되지 않았거나 사용 중일 때와 동일하지 않음). 하우스 키핑을 수행하는 시스템 유틸리티가 거의 사용되지 않아 스왑이 약간 발생할 수 있습니다. 하지만 대체로 가능한 한 스와핑이 적어야합니다.

물론 저렴한 가격으로 성능을 교환 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.