모종닷컴

Swap memory 본문

기술 용어

Swap memory

모종 2022. 11. 27. 16:41
반응형

스왑 메모리가 무엇인지 알아보려고 했는데 마침 정리가 아주 잘되어 있는 블로그 글이 있어 읽으면서 번역도 같이 해봤습니다. 제 번역 실력을 제가 믿지 못하므로 가능하다면 직접 글을 읽어 보는 걸 추천드립니다.

참고 글

개요

머신이 로드된 애플리케이션을 실행하고 저장하는 시스템을 위해 모든 프로세서는 데이터 용량이 필요합니다. 이러한 프로세스가 처음에 할당받은 RAM 메모리가 거의 소신되려 할 때 리눅스 swap 기능이 이를 도와줄 수 있습니다.

리눅스 시스템에서 RAM 대신 스왑 공간을 사용하는건 시스템 성능을 저하시킬 수 있지만 스왑 공간을 활성화시키는 것이 더 이득일 수 있습니다.

스왑 공간을 활용하는 것이 왜 필요한지 어떤 이득이 있는지 간단하게 알아보고 가상 메모리와 스왑 공간의 차이 또한 알아보도록 하겠습니다.

스왑 메모리란 뭘까?

스왑 메모리는 물리적 메모리를 대체하는 하드 디스크의 공간입니다. 운영체제에서 사용 가능한 것보다 더 많은 메모리가 필요한 경우 데이터 저장을 위한 버퍼 역할을 합니다.

Swapping은 컴퓨터 실제 메모리와 가상 메모리 간의 정보 교환을 말하며, Secondary Memory의 일부 디스크가 스와핑에 사용되므로 이 공간을 "스왑 메모리"라고 불립니다.

가상 메모리는 실행 중인 프로세스에서 사용하는 디스크 공간과 RAM의 조합입니다. 스왑 메모리는 하드 디스크에 있는 가상 메모리의 일부이며 RAM을 사용할 때 이 스왑 메모리를 사용할 수 있습니다.

스왑 메모리가 언제 필요할까?

스왑 메모리가 언제 필요한지 몇 가지 살펴보도록 하겠습니다.

  1. 머신에서 사용할 수 있는 메모리 공간은 한정적인데 해당 머신에서 실행해야 하는 애플리케이션들이 필요로 하는 공간이 이 메모리보다 많이 필요하다면 스왑 메모리를 활용할 수 있습니다.
  2. hibernation(최대 절전 모드, 컴퓨터의 상태를 유지하면서 전원을 끄는 것)을 사용 중 이라면, RAM의 내용을 하드 디스크나 기타 비휘발성 저장소에 저장해야 하므로 스왑 메모리가 필요합니다.
  3. 때때로 헤비한 애플리케이션을 사용하면 할당받은 RAM이 금방 소진될 수 있으며 스왑 메모리를 사용하면 시스템의 안정성을 높일 수 있습니다.

스왑 메모리는 얼마큼 설정해주어야 할까?

RAM이 충분히 크다고 생각하는 경우 스왑 메모리를 따로 설정할 필요는 없습니다. 다만 약간의 스왑 공간을 추가해도 크게 해가 되지 않으며 오작동하는 프로그램이 대부분의 RAM을 사용하기 시작하는 경우 도움이 될 수 있습니다.

흔히 스왑 메모리는 RAM 크기의 두 배여야 한다고 하지만 각 시스템의 상황이나 케이스에 따라 다르므로 정확한 가이드라인이 있지는 않습니다. 그래도 각 OS별로 제안 정도는 있는 것 같습니다.

Redhat

  • RAM이 4GB 이상인 경우 RAM의 20%에 해당하는 스왑 크기를 갖는 것을 추천합니다.

CentOS

  • RAM이 2GB 미만인 경우 스왑 메모리는 RAM의 두 배로 설정합니다.
  • RAM 크기가 2GB 이상인 경우 스왑 메모리는 RAM 크기 + 2GB로 설정합니다.

Ubuntu

  • hibernation(최대 절전 모드)이 필요한 경우 RAM 크기를 교체.
  • hibernation(최대 절전 모드)가 필요한 경우는 아니라면 다음과 같이 권장됩니다.
    • RAM이 1GB 미만인 경우 스왑 메모리는 RAM 크기 이상 최대 RAM 크기의 두배로 설정합니다.
    • RAM이 1GB보다 큰 경우 스왑 메모리는 최소한 RAM 크기의 제곱근과 같아야 하고 최대 RAM 크기의 두 배여야 합니다.

 

가상 메모리와 스왑 메모리의 차이점

가상 메모리

위의 가상 메모리 구성을 보면 좀 더 이해가 빠를 것 같아서 추가했습니다.

가상 메모리 스왑 메모리
RAM과 디스크 메모리의 일부를 포함 보조 디스크에 저장되며 가상 메모리 부분 중 하나
메모리를 정리하고 공간 문제, 메모리 조각화, 데이터 보안을 해결하는 메모리 관리 기술 임시 메모리 또는 예약된 메모리, RAM이 가득 차면 OS는 공간을 바꾸기 위해 비활성화되거나 덜 사용되는 프로세서, 페이지를 스왑 메모리로 이동시킵니다.
OS가 실행하는 동안 사용될 가능성이 있는 프로세스의 일부를 저장 비활성 프로세스 또는 페이지 포함

 

반응형

'기술 용어' 카테고리의 다른 글

Reentrancy  (0) 2023.07.29
셔뱅(shebang)  (0) 2023.04.29
서버 이중화 동작 방식  (0) 2022.09.11
유한 상태 기계 (Finite-State Machine, FSM)  (0) 2022.08.16
데이터 레이크  (0) 2022.08.14