[Linux] SWAP 메모리 정의 및 사용 상황

2024. 12. 19. 16:08·🐳 Infra/System
728x90
SMALL

[정의]

리눅스 시스템에서 물리적인 RAM이 부족할 때 사용하는 디스크 공간

 

[사용되는 상황]

  1. RAM 부족: 시스템의 물리 메모리가 부족할 때, 프로세스가 사용하는 데이터를 스왑 공간에 저장.
  2. 백그라운드 작업: 장기 실행 프로세스나 활동이 적은 프로세스를 RAM에서 스왑으로 옮겨 더 중요한 작업에 RAM을 할당.
  3. 시스템 안정성 유지: RAM 부족으로 인해 시스템이 중단되는 것을 방지.

[상태 확인]

# 현재 스왑 사용량 확인
free -h

swapon --show

Swap:          2.0G        1.8G        0.2G

- Used = 1.8 G
- Size = 2.0 G

=============================================
스왑 사용량 계산: (1.8 / 2.0) x 100 = 90%
==============================================
10~30% 사용	[정상]	백그라운드 프로세스가 RAM 대신 스왑을 일부 사용하는 상태로 시스템이 안정적임.
30~60% 사용	[주의]	RAM이 부족해지고 있으며, 스왑 의존도가 높아지고 있는 상태. 향후 상황을 주시해야 함.
60% 이상 [과다]	RAM이 부족해 시스템이 디스크 스왑을 과도하게 사용하는 상태. 성능 저하가 발생할 가능성 있음.
90% 이상 [위험]	디스크 스왑 사용으로 인해 I/O 병목 현상이 발생하며, 성능 저하 및 시스템 불안정 가능성이 높음.

 

 

 

Case1: [스왑 사용량 줄이기]

 

1. 스왑 해제

# 긴급 상황에서 디스크 스왑을 초기화.
sudo swapoff -a
sudo swapon -a

 

2. RAM 사용량 최적화

# 불필요한 프로세스 종료
ps aux --sort=-%mem | head -n 10
kill <PID>

 

3. swappiness 조정

# 현재 swappiness 값 확인
cat /proc/sys/vm/swappiness

# swappiness 값을 조정하여 스왑 사용 빈도를 줄임
sudo sysctl vm.swappiness=10

# /etc/sysctl.conf 파일에 추가하여 영구적으로 적용:
vm.swappiness = 10

스왑 공간 크기 설정 기준

 

  • RAM 2GB 이하: 스왑 크기를 RAM의 2배로 설정.
  • RAM 2~8GB: RAM 크기와 동일하게 설정.
  • RAM 8GB 이상: 시스템 용도에 따라 스왑 최소화 가능.

 

4. 상태 확인

vmstat 1

1. swappiness 값을 늘리는 이유

swappiness 값을 늘리면 스왑 메모리를 더 적극적으로 사용합니다. 아래와 같은 경우에 유용합니다:

1.1 RAM이 부족한 경우

  • 상황: 시스템에 설치된 RAM이 부족하고 추가적인 RAM 증설이 불가능한 경우.
  • 이유: 스왑 메모리를 적극 활용하여 RAM 과부하를 줄이고 시스템 중단을 방지.

1.2 백그라운드 작업이 많을 때

  • 상황: 장기 실행 프로세스(예: 로그 수집, 데이터 백업)가 많을 경우.
  • 이유: 중요한 애플리케이션에 RAM을 할당하기 위해 우선순위가 낮은 백그라운드 프로세스를 스왑으로 이동.

1.3 서버 안정성 확보

  • 상황: RAM 과부하로 인해 Out of Memory(OOM) 문제가 발생할 가능성이 높을 때.
  • 이유: 스왑 공간을 활용해 안정성을 높이고, 시스템이 강제로 프로세스를 종료하지 않도록 함.

2. swappiness 값을 줄이는 이유

swappiness 값을 줄이면 RAM을 최대한 활용하고 스왑 사용을 최소화합니다. 아래와 같은 경우에 유용합니다:

2.1 RAM이 충분한 경우

  • 상황: 시스템에 충분한 RAM이 설치되어 있음.
  • 이유: 스왑을 사용하는 대신 빠른 RAM을 적극 활용하여 성능 향상.

2.2 디스크 I/O 부하를 줄이기 위해

  • 상황: 디스크 성능이 낮거나 스왑 사용으로 인해 디스크 I/O 병목 현상이 발생.
  • 이유: 스왑 사용을 줄이면 디스크 액세스가 줄어 시스템 응답 속도가 개선됨.

2.3 애플리케이션 성능 최적화

  • 상황: RAM에 데이터를 유지해야 하는 고성능 애플리케이션이 실행 중(예: 데이터베이스, 캐시 서버).
  • 이유: RAM의 높은 속도를 활용해 애플리케이션 성능 최적화.

요약

  • swappiness 값을 늘리면: 메모리가 부족한 환경에서 안정성 강화 및 백그라운드 작업을 스왑으로 이동.
  • swappiness 값을 줄이면: RAM을 최대한 활용하여 성능을 향상하고 디스크 I/O 부하를 줄임.

 

LIST

'🐳 Infra > System' 카테고리의 다른 글

[Linux] DIsk 용량 확보 팁  (0) 2024.12.19
RAM 부족 시 대처 방안  (1) 2024.12.19
HA (High Availability, 고가용성)  (0) 2024.12.12
docker 컨테이너 주요 명령어  (0) 2024.03.28
Microsoft Active Directory  (2) 2024.03.22
'🐳 Infra/System' 카테고리의 다른 글
  • [Linux] DIsk 용량 확보 팁
  • RAM 부족 시 대처 방안
  • HA (High Availability, 고가용성)
  • docker 컨테이너 주요 명령어
terranbin
terranbin
Studying Computer Science
  • terranbin
    Engineer
    terranbin
  • 전체
    오늘
    어제
    • 분류 전체보기 (129)
      • ☁️Cloud (42)
        • AWS (38)
        • MS Azure (4)
      • 🐳 Infra (1)
        • System (12)
        • DRBD (3)
      • 🔌Network (8)
      • 🔹Storage (8)
      • 🔹Kubernetes (15)
      • 🔹 DevOps (8)
      • 🔹Study (4)
      • 🔹Install (6)
      • 🔹ETC (2)
      • 🔹PostMan (6)
      • 🔹Openstack (3)
      • 🔹RcloneView (6)
      • 🔹Test (0)
      • 🔹Debug (2)
      • 🔹DBMS (2)
  • 블로그 메뉴

    • 홈
  • 링크

    • sungbin
    • Github
  • 공지사항

  • 인기 글

  • 태그

    S3
    centos7
    terraform
    ceph
    EC2
    rocky9
    AWS
    kubectl
    설치
    Google Drive
    SAA
    EBS
    OpenStack
    distributed load testing
    rocky8
    network
    postman
    aws dlt
    kubernetes
    rcloneview
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
terranbin
[Linux] SWAP 메모리 정의 및 사용 상황
상단으로

티스토리툴바