[Linux] Swap memory

한결·2023년 7월 22일
0

CS

목록 보기
20/34

개요

EC2 인스턴스를 프리티어로 사용하는데 메모리가 너무 적어서 터지곤했다.
이것을 돈을쓰지않고 해결하는 방법을 찾다가 리눅스의 swap memory 방법이 있다는 것을 발견함
swap memory가 뭔지 정리해보자

swap space란

물리적 메모리를 대체하는 하드 디스크의 공간

  • 운영체제에서 사용 가능한 것보다 더 많은 메모리가 필요한 경우 데이터 저장을 위한 버퍼 역할을 함

  • Swapping : 실제 메모리와 가상 메모리 간의 정보 교환을 말함
  • Secondary Memory의 일부 디스크가 스와핑에 사용되므로 이 공간을 "스왑 메모리"라고 부름
  • 가상 메모리는 실행중인 프로세스에서 사용하는 디스크 공간과 RAM의 조합
  • 스왑 메모리는 하드 디스크에 있는 가상메모리의 일부임
  • RAM을 사용할 때 이 스왑 메모리를 사용할 수 있음

어따 쓰냐

  1. 머신에서 사용할 수 있는 메모리 공간보다 실행해야 하는 애플리케이션들이 필요로 하는 공간이 이 메모리보다 많이 필요할 때 활용
  2. hibernation

    최대 절전모드, 컴퓨터 상태를 유지하면서 전원을 끄는 것

  • RAM의 내용을 하드 디스크나 기타 비휘발성 저장소에 저장해야 하므로 스왑 메모리가 필요
  1. 무거운 애플리케이션 사용할 때 할당 받은 RAM이 금방 소진 될 수 있다
    -> 스왑메모리를 사용해 시스템의 안정성 높일 수 있음

  2. 오작동하는 프로그램이 RAM을 소진하는 경우 스왑 공간이 도움이 됨

얼만큼 설정해주어야 하지

  • 특정 지침은 따로 없음

  • Redhet의 제안

    • RAM이 4GB 이상인 최신 시스템의 경우 RAM의 20% 스왑 크기를 갖는 것이 좋음
  • CentOS의 제안

    • RAM이 2GB 미만인 경우 스왑 공간은 RAM 크기의 두 배여야 함
    • RAM 크기가 2GB 이상인 경우(예: 3GB RAM에 대한 5GB 스왑) 스왑 공간은 RAM 크기 + 2GB여야 함
  • Ubuntu의 경우 최대 절전 모드를 사용하여 스왑 크기를 결정

    • RAM이 1GB 미만인 경우 스왑 크기는 최소한 RAM 크기 이상이고 최대 RAM 크기의 두 배여야 함
    • RAM > 1GB인 경우 - 스왑 크기는 최소한 RAM 크기의 제곱근과 같아야 하고 최대 RAM 크기의 두 배여야 함
    • 최대 절전 모드를 사용하는 경우 스왑 크기는 RAM 크기에 RAM 크기의 제곱근을 더한 값과 같아야 함

Swap memory

컴퓨터 시스템에서 주메모리(RAM)의 부족으로 인해 발생하는 문제를 해결하기 위해 사용되는 보조 메모리

  • 주 메모리가 부족한 상황에서 운영체제는 일부 데이터를 주 메모리에서 임시로 Swap 메모리로 옮겨놓음

  • Swap 메모리는 하드 디스크의 일부를 할당하여 가상의 메모리 공간으로 사용함

  • 주 메모리보다 느리지만 용량이 크기 때문에 필요에 따라 더 많은 데이터 저장 가능

  • 즉, 스왑 메모리는 주 메모리의 확장으로 간주할 수 있음

Swap memory 주요 목적

  • 물리적 메모리 부족 보완
    • 주 메모리가 모자라서 추가적인 데이터를 저장할 수 없을 때, 운영체제는 가장 오래 사용하지 않은 데이터나 프로세스를 Swap 메모리로 이동시켜 공간을 확보
  • 메모리 압력 완화
    • 프로그램 실행 도중 메모리 사용량이 갑작스럽게 증가할 경우, Swap 메모리를 활용하여 메모리 압력을 완화
  • Hibernation
    • 현재 실행 중인 시스템 상태를 디스크에 저장하고 나중에 다시 불러올 수 있도록 함. 이런 상태에서 Swap 메모리가 사용

그러나 Swap 메모리가 필요한 경우는 주로 주 메모리가 부족할 때 발생

  • 메모리 부족 상태에서 Swap 메모리를 사용하면 성능 저하가 발생할 수 있음
    -> 디스크가 RAM보다 훨씬 느리기 때문에 Swap 메모리에서 데이터를 읽고 쓰는 속도가 느리기 때문

충분한 주 메모리를 가지는 것이 시스템 성능 향상을 위해 중요

  • 스왑 메모리의 크기는 운영체제의 설정에 따라 다르며, 일반적으로 시스템의 물리적 메모리(RAM) 크기의 일부를 기준으로 자동으로 설정

정리

  • RAM 부족할 때 하드디스크의 일부를 메모리로 가져다 쓴다
  • 운영체제 별 swap space 크기 기준이 있다

출처

0개의 댓글