본문 바로가기
카테고리 없음

리눅스의 Swap 메모리가 부족할 경우를 생각한다. swap 메모리 용량 고려사항, swap 메모리 부족현상, swap 메모리 용량 증설

by 기본기를 다지는 블로그 2025. 4. 14.

swap 메모리 부족

 

 swap 메모리의 정의는 시스템의 메인 메모리가 부족한 상황에서, 성능보다 메모리 부족으로 인한 응용프로그램 등의 갑작스러운 crash등을 방지하기 위한 임시/보조의 공간입니다

하여, 시스템의 물리 메모리가 부족하여 스왑 메모리 영역까지 사용하게 된다면 시스템 관리자는 매우 초조해질 수 있습니다.

 

간혹 스왑 메모리를 할당할 때, 물리 메모리의 사이즈와 비례하여 고려하지 않아 문제가 생기는 경우가 발생할 수 있습니다.

 

아래 레드햇의 권장되는 시스템 스왑 메모리 공간의 문서를 살펴보겠습니다.

https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/8/html/managing_storage_devices/recommended-system-swap-space_getting-started-with-swap

 

13.2. 권장되는 시스템 스왑 공간 | Red Hat Product Documentation

형식멀티 페이지단일 페이지모든 문서를 PDF로 표시

docs.redhat.com

 

표 13.1. 권장 스왑

시스템의 RAM 크기 권장 스왑 공간 최대 절전모드를 허용하는 경우 권장 스왑 공간
✓ 2GB RAM의 2 배 RAM의 3 배
> 2GB - 8GB RAM의 양과 같음 RAM의 2 배
> 8 GB – 64 GB 최소 4GB RAM의 1.5 배
> 64 GB 최소 4GB 최대 절전 모드는 권장되지 않음

 

일반적인 서버 시스템은 절전 모드는 잘 사용하지 않으므로,  2번째 열의 "권장 스왑 공간" 만 봅니다.

다만 운영환경 시스템의 활용과 구성에 따라 swap 의 권장사양은 각각 다를 수 있습니다

 

예를들어 현업의 검색시스템의 메인 어플리케이션이 사용하는 메모리량에 비례하여,

어플리캐이션 공급업체에서 권장하는 swap  사이즈가 존재할 수 있습니다.

 

swap 메모리 권장사항

 

레드햇에서 제공하는 권장 swap 공간 표 중에서 8GB 부터 64GB 보다 클때는 최소 4GB 가 권장이라고 표기되지만 이는 그저 최소한일 뿐 최대 값은 위에 명시된것과 같이 서버 환경의 요구 조건에 따라 스왑 메모리 공간을 결정하면 되며, 

애매하신 경우엔 일반적으로 물리 메모리의 20%를 swap 메모리의 용량으로 산정하는것을 권장합니다.

 

How much swap is recommended nowadays?

This depends on the desired behaviour of the system, but configuring an amount of 20% of the RAM as swap is usually a good idea. More details are in this solution document.

Do we really need swap on modern systems?

 

Do we really need swap on modern systems?

Swap is used to give processes room, even when the physical RAM of the system is already used up. In a normal system configuration, when a system faces memory pressure, swap is used, and later when the memory pressure disappears and the system returns to n

www.redhat.com

 

예를들어 DB 서버의 메모리가 512 GB라면 오라클 등과 같은 벤더의 swap require를 따를 수 있으나, 시스템 관점에서 swap 용량을 지정할 경우 20%인 102.4GB, 관리측면에서 대략 128GB 정도를  스왑 용량으로 구성하는것을 고려해볼 수 있습니다.

 

또는 디스크 가용 용량이 넉넉하고, 미션 크리티컬한 low latency 환경에선 물리메모리와 동일한 용량으로 swap을 설정하기도 합니다. 역시 환경에 따라 swap 메모리를 구성하는 방식도 다양합니다.

 

그러나,  물리메모리가 가득 찬 상황에서 스왑메모리 증가로 인해 시스템의 성능이 저하가 예상된다면 아래 3가지 방안을 고려해볼 수 있습니다.

 

A.물리메모리 증가하기

B.스왑을 많이 쓰는 프로세스추적하여 프로세스 일부 종료

C.권장에 따라 스왑사이즈 증가하기

 

현재 내가 구성한 swap 용량이 적다면, swap 공간을 확장할수도 있습니다.

이런 내용은 모두 다 잘 아실테니 레드햇에서 제공하는 스왑 공간 확장절차를 확인해보시기 바랍니다.

 

rhel8 기준입니다.

https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/8/html/managing_storage_devices/extending-swap-on-an-lvm2-logical-volume_getting-started-with-swap#extending-swap-on-an-lvm2-logical-volume_getting-started-with-swap

 

13.6. LVM2 논리 볼륨에서 스왑 확장 | Red Hat Product Documentation

형식멀티 페이지단일 페이지모든 문서를 PDF로 표시

docs.redhat.com

위 링크의 자료는 레드햇에서 공개한 메뉴얼이므로 제한없는 열람이 가능합니다.

 

 

요즘은 디스크 용량 대비 가격이 저렴하므로 부담없이 swap 메모리의 용량을 고민없이 넉넉한 용량으로 결정하기도 합니다.

시스템을 구성할 때 swap 메모리 용량을 권장사항에 맞게 고려하여 효율적인 시스템을 운영할 수 있습니다.