서버에서 여전히 스왑 파티션이 필요합니까?


36

이 질문 을 읽었 지만 데스크탑이나 노트북이 아닌 서버의 맥락에서 질문되었습니다.

8GB와 같이 많은 양의 RAM이 노트북에 설치되어 있으면 여전히 스왑 공간이 필요합니까?

답변:


32

스왑 공간이 시스템 성능에 부정적인 영향을 미친다는 일반적인 오해가 있습니다. 이것은 올바르지 않습니다. 충분한 RAM이 있으면 크기에 상관없이 스왑 영역이 있으면 성능이 전혀 저하되지 않습니다. 성능에 영향을 미치는 것은 RAM이 부족하고 효과적으로 스왑 공간을 사용한다는 것입니다.

  1. 스왑 공간이없고 RAM이 부족한 경우 커널은 좋은 후보라고 생각하는 하나 이상의 프로세스를 선택하여 힌트를 줄 수는 있지만 프로세스를 종료 합니다.

  2. 스왑 공간이 있고 RAM이 부족한 경우 커널은 사용 된 메모리 페이지를 덜 선택하여 스왑 영역에 배치하여 RAM을 비 웁니다. 이렇게하면 시스템 속도가 느려지지만 응용 프로그램에는 영향을 미치지 않습니다.

커널이 내 응용 프로그램을 죽일 가치가 있다고 생각하기 때문에 불편한 부분이나 모든 작업을 느낀다는 느낌 때문에 항상 사례 2를 선호합니다. 또한 평균 디스크의 현재 크기가 TB 범위에 있으면 스왑을 위해 몇 퍼센트를 예약하는 것이 일반적으로 문제가되지 않습니다.


첫 번째 요점이 사실입니까? 커널이 실행중인 프로세스를 종료하여 RAM을 확보합니까? 왜 커널은 라이브 프로세스를 죽이지 않고 디스크 공간을 사용하지 않습니까?
Donato

4
@Donato 네, 첫 번째 요점은 사실입니다. 스왑 공간이 구성되지 않은 경우 (예 : 디스크) 커널은 디스크 공간을 사용하여 RAM을 확보하도록 선택할 수 없습니다.
jlliagre

스왑 공간을 마치면 어떻게됩니까? 1 번 사건으로 넘어?
Zac

@Zac 예. 메모리 오버 커밋을 실제로 비활성화하지 않으면 메모리 할당에 실패한 첫 번째 프로세스가 손상됩니다. (유의 한) 스왑 공간 영역이 구성되어 있고 대부분을 사용하는 경우 우선 심각한 성능 문제가 발생할 수 있습니다.
jlliagre

1
@Zac 스왑 공간을 모두 사용한다면, 우선 스왑 공간이없는 것과 같은 상황에 처하게됩니다. 하나 이상의 프로세스가 죽습니다. 그들은 oom killer에 의해 선택되거나 잘못된 장소와 시간에있을 수 있습니다. 일반적으로 올바르게 모니터링되는 프로덕션 시스템은 스왑 소진이 발생하기 전에 경고를 트리거 한 다음 관리자의 대응을 트리거해야합니다.
jlliagre

9

RAM이 3GB 이상인 경우 Ubuntu는 스왑 공간이 OS에 충분하기 때문에 자동으로 사용하지 않습니다 .

이제 스왑 파티션이 정말로 필요합니까?

내 의견으로는 그렇습니다. 스왑 공간이 필요할 수도있는 향후 설치 또는 수행 할 작업을 모르기 때문입니다. 또한 최대 절전 모드를 사용하려는 경우 스왑 공간이 필요할 수 있습니다. 실제로 스왑 파티션이 필요하지 않지만 정상적인 작업에서 많은 양의 메모리를 사용하는 경우 권장됩니다.

스왑 필요 여부에 대한 자세한 내용은 Ubuntu 스왑 FAQ 또는 스왑 요구 사항을 참조하십시오.


첫 진술을 확인하는 링크가 있습니까?
jlliagre


1
블로그에서 askunbutu 답장이 잘못 인용되었습니다. user4124가 Ubuntu 개발자라는 증거는 없습니다. "(일반적으로) 사용하지 않을 것"은 "자동으로 사용하지 않을 것"과는 다릅니다. 실제로 Ubuntu는 스왑을 비활성화하지 않으며 8GB 이상의 RAM이 있어도 필요한 경우 스왑을 사용합니다.
jlliagre

@jlliagre 그 의미는 스왑 공간이 있지만 사용되지 않았다는 것입니다. Xubuntu 14.04를 설치할 때 16GB 스왑이 생성되었으며 아직 사용되지 않았습니다. 참조 이미지
미치

1
답장을 보내 주셔서 감사합니다. "사용하지 않음"은 "사용 안 함"과 동일하지 않습니다. 우분투는 스왑을 비활성화하지 않으며 크기에 관계없이 스왑을 사용합니다.
jlliagre

4

지난 6 년 동안 저는 8GB 이상의 RAM이있는 데스크탑 시스템을 사용했습니다. 시스템이 일반적인 사용량에서 메모리를 교체 한 경우를 기억하지 못하며 htop을 사용하여 리소스 사용량을 자주 모니터링합니다. 개발 목적으로 4 대의 가상 머신 (서버)을 동시에 실행 한 경우에도 스와핑이 발생하지 않았습니다.

그러나 실행중인 응용 프로그램이 메모리를 많이 사용하는 경우 (예 : 비디오 편집, 이미지 편집, 큰 데이터베이스 테이블 조작 등) 시스템에 메모리가 부족한 상황에 처할 수 있습니다. 이 경우 스왑 공간을 갖는 것이 바람직 할 수 있습니다. 최후의 수단 안전망으로 생각하십시오. 그리고 오늘날 시스템의 멀티 테라 바이트 용량을 고려할 때 스왑 파티션 가치는 몇 기가 바이트입니까? 미안보다 안전합니다 :-)


2

스왑 공간을 갖는 것이 항상 좋습니다.

여기에 Michael Jang의 RHCSA / RHCE Certification Study Guide를 인용하겠습니다.

리눅스 스왑 공간

이러한 공간은 현재 실행중인 프로그램의 가상 메모리로 시스템에서 유효 RAM의 양을 확장하는 데 사용됩니다. 그러나 추가 RAM을 구입하여 스왑 공간을 제거 할 수는 없습니다. Linux는 기가 바이트의 RAM이 있더라도 자주 사용하지 않는 프로그램과 데이터를 이동하여 공간을 교환합니다.

최대 2GB 시스템의 경우 기본 스왑 공간 크기는 설치된 RAM 크기의 두 배입니다. 2GB 이상에서는 RAM + 2GB입니다. 그러나 이것들은 "단단하고 빠른"규칙이 아닙니다. RAM이 몇 GB 인 워크 스테이션은 스왑 공간을 거의 사용하지 않는 경우가 많습니다. 그러나 한 번에 몇 달 동안 재부팅되지 않거나 특정 서비스의 수요가 많은 시스템에서는 더 자주 사용될 수 있습니다.


1
"Linux는 자주 사용하지 않는 프로그램과 데이터를 이동하여 기가 바이트의 RAM이 있어도 공간을 교체합니다." 여기서 우리는 메모리에로드 된 코드와 데이터에 대해 이야기한다고 가정합니다. RAM이 8GB이고 일반 앱을 실행하는 경우 왜 지구상에서 코드 또는 데이터 페이지가 스왑 아웃 페이지로 표시됩니까?
Tarik

1

시스템에서 실행중인 내용에 따라 다릅니다.

컨텐츠를 작성하는 경우 스왑 공간이 여전히 할당되어있는 것이 좋습니다. 따라서 RAM이 부족하면 프로세스가 종료되거나 잠재적으로 작업이 손실되는 대신 프로세스가 느려집니다.

컴퓨터에서 프로그램을 실행하는 경우 스왑 공간이 필요하지 않습니다. 이 용도에 정확히 맞는 여러 키오스크와 유사한 디스플레이 시스템을 설계하고 제작합니다. 오히려 프로세스가 느리게 진행되는 것보다 갑자기 죽을 것입니다. 그 상태를 감지하고 수정할 수 있기 때문입니다.


1

스왑 공간 이상이 필요한 경우 파일 시스템에 스왑 파일을 만들 수 있습니다. 물론 최대 절전 모드는 지원하지 않지만 SSD 드라이브와 많은 RAM이 장착 된 랩톱에는 합리적인 방법입니다.

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