VMware / ESX의 Linux VM에 스왑 파티션이 있어야합니까?


18

VMware ESX 설정에서 이러한 옵션의 차이점은 무엇입니까?

  • 1GB RAM 및 1GB 스왑 파티션이있는 Linux VM 및 1.5GB 램 사용
  • RAM이 1GB이고 스왑 파티션이없고 Linux가 1.5GB 램을 사용하는 Linux VM

두 경우 모두 스왑이 사용됩니다.

  • 첫 번째 스왑에서 리눅스 스왑 파티션으로
  • 두 번째 경우 VMware는 512MB를 VMware 스토리지 풀로 교체합니다.

Linux VM에 스왑 파티션을 제공 할 때 어떤 점이 있습니까?


ESX 호스트가 스왑이 필요한지 또는 VM에서 어떻게 처리되는지 묻고 있습니까? 당신이 의미하는 것을 지정하기 위해 질문에 대해 자세히 설명하고 싶을 수도 있습니다.
Bart Silverstrim

잘 했어.
Sandra

답변:


15

사람들이 OS 특정 이유를 다루고 있다는 사실을 무시하면서 스왑 파티션 / 파일로 실행하지 않는 것이 좋지 않은 두 가지 이유가 있습니다.

  1. 공간 파일 / 파티션이없는 VM에 1.5GB의 RAM이 할당되어 있고 1.5GB + 1MB를 사용하려는 경우 메모리 부족 오류가보고됩니다. 스왑 공간을 사용하면 활성 메모리에서 디스크로 데이터를 스왑 할 수 있습니다.
  2. 게스트 OS는 호스트보다 훨씬 나은 메모리 관리 작업을 수행합니다. 그렇기 때문에 호스트는 메모리가 필요하지 않은 것에 대해 교육적으로 추측 할 수 있기 때문에 메모리 벌룬 닝과 같은 기술이 존재하지만 게스트는 훨씬 더 지능적인 수준을 알고 있습니다 (이로 인해 OS 메모리가 교체되지 않아 성능이 저하 될 수 있음).

10

예. 유닉스 방식입니다.

유닉스 (리눅스조차도) 교환 할 수있을 것으로 기대 합니다. 스왑 파티션없이 잘못 구성되었거나 스왑 공간이 꽉 차서 시스템을 스왑 할 수없는 경우
나쁜 상황 이 발생합니다. 리눅스에서 이러한 나쁜 것들 중 하나는 메모리 부족 킬러 (Out Of Memory Killer)인데, 이는 가장 많은 RAM을 사용하고 있다고 생각하는 프로그램의 뒷면에 칼을 넣을 것이다 (데이터베이스 서버가 가장 좋아하는 대상이다).


4

무엇을 /proc/sys/vm/overcommit_memory설정 했습니까? 커널 문서에서 :

0       -       Heuristic overcommit handling. Obvious overcommits of
                address space are refused. Used for a typical system. It
                ensures a seriously wild allocation fails while allowing
                overcommit to reduce swap usage.  root is allowed to
                allocate slightly more memory in this mode. This is the
                default.

1       -       Always overcommit. Appropriate for some scientific
                applications.

2       -       Don't overcommit. The total address space commit
                for the system is not permitted to exceed swap + a
                configurable percentage (default is 50) of physical RAM.
                Depending on the percentage you use, in most situations
                this means a process will not be killed while accessing
                pages but will receive errors on memory allocation as
                appropriate.

따라서 1을 사용하는 경우 차이가 없습니다. 2를 사용하고 Linux 스왑 파일을 사용하지 않으면 512M의 (가상) 메모리를 할당 할 수있는 프로세스가 없습니다. 0의 결과는 명확하지 않습니다.

편집 : http://utcc.utoronto.ca/~cks/space/blog/linux/LinuxVMOvercommit에서 이것은 0이 작동하는 방식입니다.

휴리스틱 오버 커밋은 시스템이 가능한 모든 메모리를 회수하고 현재보다 많은 RAM을 사용하는 다른 프로세스가없는 경우 시스템이 제공 할 수있는 메모리 양을 계산하려고 시도합니다. 이 이상을 요구하면 할당이 거부됩니다. 특히 이론적 인 '사용 가능한 메모리'수는 사용 가능한 스왑 공간, 사용 가능한 RAM (루트가 아닌 경우 1/32 미만) 및 재 확보 가능으로 레이블이 지정된 통합 버퍼 캐시 및 커널 데이터에서 사용하는 모든 공간을 합하여 계산됩니다. (일부 예약 된 페이지가 적음).

따라서 계산에서도 스왑을 사용합니다. 일반적으로 RHEL 권장 사항을 따릅니다.

M = Amount of RAM in GB, and S = Amount of swap in GB, then
If M < 2
    S = M *2
Else
    S = M + 2

1
cat /proc/sys/vm/overcommit_memory을 반환합니다 0. overcommit_memory가치 및 스왑 / 비 스왑 측면에서 무엇을 권장 합니까?
Sandra

3

스왑 파티션은 잠재적으로 더 빠를 수 있습니다. 특히 루트 디스크가 거의 꽉 차서 조각화없이 스왑 파일을 한 조각으로 만들 수없는 경우, 파일 시스템에 의해 생성 될 수있는 오버 헤드와 해당되는 경우 LVM.

그러나 메모리 요구 사항의 33 %를 디스크에 유지하면 두 시스템의 성능이 저하됩니다.


"루트 디스크"라고 말할 때 ESX가 스왑 파일을 생성하는 ESX 호스트를 의미합니까?
Sandra

아니요, 루트 파일 시스템이 포함 된 VM의 시스템 디스크를 의미합니다. 결국 전용 스왑 파티션이없는 상태에서 스와핑이 발생합니다.
Sven

이 답변은 스왑 파티션과 스왑 파일 간의 토론입니다. 문제는 스왑이 필요한지 여부였습니다.
user606723

@ user606723 : 스왑을 전혀 사용하지 않으면 VM보다 많은 메모리를 할당하려고 시도하고 1GB 물리적 상황에서 1.5GB 사용량이 발생하면 메모리 부족 오류가 발생합니다.
Sven

@SvenW, 그렇습니다. 그러나 그런 일이 일어날 가능성은 없습니다. 관리자가 결정해야합니다.
user606723

0

다음 링크를 참조하십시오 https://help.ubuntu.com/community/SwapFaq

기본적으로 VM에 할당하는 것보다 최대 절전 모드를 사용하거나 더 많은 메모리를 사용하지 않는 한 스왑 파티션의 이점은 없습니다.

나는 몇 년 동안 내 리눅스 머신에서 스왑 파티션 / 파일을 사용하지 않았다.


1
문제는 스왑 / 스왑 없음에 관한 것이 아닙니다. VMware가 스왑을 처리하는 방법에 관한 것입니다.
Sandra

0

스왑의 확실한 장점은 컴퓨터가 충돌 할 때에도 크래시 덤프를 만들 수 있다는 것입니다. 내가 틀렸다면 정정하십시오. 그러나 afaik은 스왑이 없으면 불가능합니다. 이것은 물론 VM웨어에만 국한된 것이 아니라 어느 곳에서나 적용됩니다. 나는 지적하는 것이 중요하다고 생각했다.

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