Linux

리눅스 Swap 메모리란?

Somaz 2024. 11. 19. 10:28
728x90
반응형

Overview

Linux 스왑 메모리는 시스템의 물리적 RAM(Random Access Memory)이 완전히 활용될 때 사용되는 디스크 공간이다. 이는 RAM의 오버플로 영역 역할을 하여 실행 중인 모든 응용 프로그램과 프로세스를 수용하기에 사용 가능한 물리적 메모리가 부족한 경우에도 운영 체제가 계속 작동할 수 있도록 한다.

출처 : https://www.atatus.com/blog/what-is-swap-space/

 

 


 

 

Swap 메모리란?

스왑 공간은 시스템의 메모리 용량을 확장하기 위해 예약된 스토리지 드라이브(예: SSD 또는 HDD)의 일부이다. 디스크 I/O 작업이 포함되므로 실제 RAM보다 느리지만 RAM이 과도하게 커밋되면 대체 기능을 제공한다.

Swap 작동방식

응용 프로그램이나 프로세스에 사용 가능한 RAM보다 더 많은 메모리가 필요한 경우 Linux는 비활성 메모리 페이지를 스왑 공간으로 이동한다. 이 프로세스를 페이징 또는 스왑 아웃이라고 한다. 스왑 아웃된 데이터가 다시 필요한 경우 RAM으로 다시 이동하고 필요한 경우 다른 데이터를 교체한다. 이를 스와핑 인이라고 한다.

 

 

Swap 유형

 

Swap 파티션

  • 스왑 공간에만 사용되는 디스크의 전용 파티션이다. 일반적으로 파일 시스템 오버헤드를 방지하므로 더 효율적이다.

 

Swap 파일

  • Swapping을 위해 할당된 기존 파일 시스템 내의 파일이다. 디스크를 다시 분할하지 않고도 크기를 조정하거나 관리하기가 더 쉽다.

 

 

Swap 메모리 확인

  • `free -m`: 스왑을 포함하여 사용된 메모리와 사용 가능한 메모리를 표시
  • `swapon -s`: 모든 활성 스왑 공간을 나열
  • `cat /proc/meminfo`: 스왑을 포함한 자세한 메모리 통계를 제공
  • `vmstat`: 메모리 및 스왑 사용 통계를 실시간으로 표시 top 또는
  • `htop`: 스왑을 포함한 시스템 리소스 사용량에 대한 개요를 제공

 

Swap 설정

 

Swap 파일 생성

# swap 할당
sudo fallocate -l 2G /swapfile(2GB 스왑 파일).

# swap 권한 설정
sudo chmod 600 /swapfile

# swap 형식 설정
sudo mkswap /swapfile.

# swap 활성화
sudo swapon /swapfile.

# swap auto mount
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

 

 

Swap 파티션 추가

  • 스크립트 사용하여 자동화
#!/bin/bash

# Define variables
DISK="/dev/sdX"
PARTITION="${DISK}1"

# Create new partition using fdiskecho -e "n\\np\\n1\\n\\n\\nw" | sudo fdisk $DISK

# Set partition type to Linux swap
sudo fdisk $DISK <<EOF
t
1
82
w
EOF

# Format the partition as swap
sudo mkswap $PARTITION

# Enable swap
sudo swapon $PARTITION

# Add to /etc/fstab for persistenceecho "$PARTITION none swap sw 0 0" | sudo tee -a /etc/fstab

# Verify
sudo swapon --show
free -h

 

 

 

Swapiness

Swapiness는 시스템이 스왑을 얼마나 적극적으로 사용하는지 제어하는 커널 매개변수이다. 값 범위는 0~100이다.

  • 0: 꼭 필요한 경우가 아니면 교체를 피한다.
  • 100: 공격적으로 교체
sudo sysctl vm.swappiness=10
  • 영구적으로 하려면 `/etc/sysctl.conf` 에 `vm.swappiness=10` 을 추가한다.

 

 

Swap의 이점

  • 메모리 부족(OOM) 오류 방지: RAM이 소진되었을 때 안전망을 제공한다.
  • 최대 절전 모드 지원: 최대 절전 모드 동안 공간을 교환하기 위해 전체 시스템 상태를 저장한다.
  • 안정성 향상: 메모리가 과도하게 사용되는 경우 중요한 프로세스가 종료되지 않도록 한다.

 

 

Swap의 단점

  • 느린 성능: 디스크 기반 스토리지는 RAM보다 훨씬 느리므로 스왑을 많이 사용할 경우 시스템 성능이 저하된다.
  • SSD : 스왑 쓰기를 자주 수행하면 SSD의 수명이 단축될 수 있다.
  • 대기 시간: 스왑에서 데이터에 액세스하면 RAM에 비해 추가 대기 시간이 발생한다.

 

 

 

 


Reference

https://www.atatus.com/blog/what-is-swap-space/

https://medium.com/@atifjaved02/how-to-add-swap-memory-for-a-linux-instance-a-step-by-step-guide-003c1228a743

728x90
반응형

'Linux' 카테고리의 다른 글

리눅스 커널이란?(Linux Kernel)  (2) 2024.11.12
Vim 개념 및 사용가이드  (0) 2024.05.14
리눅스 명령어 3. sed, awk란?  (0) 2024.01.20
리눅스 명령어 2. jq란?  (2) 2024.01.19
리눅스 명령어 1. xargs란?  (0) 2024.01.16