Ⅰ. Linux에서의 SWAP이란?
Linux 운영체제에서 물리적 메모리(RAM)가 부족할 때, 디스크 공간의 일부를 가상 메모리로 활용하여 시스템의 메모리 요구를 충족시키는 방법입니다. 주로 swap 공간은 시스템의 메모리 요구가 급증할 때 RAM의 데이터를 디스크로 옮겨 일시적으로 저장하고, 필요한 경우 다시 RAM으로 데이터를 불러오는 식으로 작동합니다. 이는 물리적 메모리의 부담을 줄이기 위한 것으로, 디스크에서 제공되는 공간이기 때문에 속도는 RAM보다 느리지만, 메모리 부족 시 시스템의 안정성을 유지하는 데 큰 역할을 합니다.
Ⅱ. Linux에서의 SWAP 역할
Swap 공간은 물리적 RAM이 부족할 때 추가 메모리 공간으로 활용됩니다.
주로 메모리 확장과 시스템의 안정성 높이는 역할을 합니다:
ⅰ. 메모리 확장
RAM이 부족할 때 시스템이 안정적으로 동작할 수 있도록 도와줍니다. 예를 들어, 많은 애플리케이션을 동시에 실행할 때 시스템의 RAM이 가득 차면, 덜 사용되는 데이터나 프로세스가 swap으로 이동합니다.
ⅱ 시스템 안정성
시스템이 예상보다 많은 메모리를 사용할 때, swap 공간을 활용하면 시스템이 중단되지 않고 지속적으로 작동할 수 있습니다.
Ⅲ. Linux에서의 SWAP 영역 구성
ⅰ. Swap 파티션: 설치 시 디스크의 특정 공간을 할당하여 영구적인 스왑 파티션을 만들 수 있습니다.
ⅱ. Swap 파일: 기존 시스템에서 필요에 따라 파일 형태로 swap 영역을 추가로 구성할 수 있습니다.
Ⅳ. Linux에서의 SWAP 메모리 작동 원리
메모리가 가득 찼을 때, 커널은 우선순위가 낮거나 사용 빈도가 적은 데이터를 swap으로 이동시킵니다. 이 데이터는 사용자가 작업을 재개할 때까지 임시로 디스크에 저장되며, 다시 필요해지면 RAM으로 불러옵니다. 이 과정에서 발생하는 디스크 I/O는 RAM과 비교해 상대적으로 느리기 때문에 성능에 영향을 줄 수 있습니다.
Ⅴ. Linux에서의 메모리 반환
Linux는 메모리를 효율적으로 관리하기 위해 메모리 반환을 수행합니다. 반환 과정은 사용되지 않는 메모리를 찾아 이를 해제하는 과정으로, 시스템이 원활하게 동작하도록 돕습니다. 메모리 반환은 주로 다음 방식으로 이루어집니다:
ⅰ. 캐시 정리: 사용 빈도가 낮은 캐시 메모리를 자동으로 정리하여 새 요청에 필요한 메모리 공간을 확보합니다.
ⅱ. Swappiness 조정: /proc/sys/vm/swappiness 파일에서 설정된 swappiness 값에 따라 swap 사용 빈도를 조정합니다. 값이 높을수록 RAM에서 swap으로 데이터를 이동시키는 빈도가 높아지며, 메모리를 더 자주 반환하게 됩니다.
ⅲ. 사용자가 메모리 반환 강제하기
필요에 따라 시스템에서 캐시나 swap을 강제로 해제하여 메모리를 확보할 수 있습니다. 예를 들어 다음 명령어를 사용하면 캐시를 정리할 수 있습니다:
# 페이지 캐시 정리 sudo sysctl vm.drop_caches=1 # Dentries 및 inodes 캐시 정리 sudo sysctl vm.drop_caches=2 # 모든 캐시 정리 sudo sysctl vm.drop_caches=3 |
캐시를 정리하면 현재 사용하지 않는 메모리가 반환되므로 시스템의 메모리 여유 공간을 확보할 수 있습니다.
Ⅵ. free -h 명령어의 출력 구성
ⅰ. total: 시스템에 설정된 전체 swap 공간의 용량입니다. 이는 swap 파티션 또는 swap 파일의 총 크기를 나타냅니다.
ⅱ. used: 현재 사용 중인 swap 공간의 양을 보여줍니다. 이는 RAM이 부족할 때 디스크에서 사용되는 가상 메모리입니다.
ⅲ. free: 현재 사용되지 않고 남아 있는 swap 공간의 양입니다. 이는 아직 RAM이 부족하지 않거나, 스왑이 사용되지 않고 있는 경우입니다.
ⅳ. shared: 여러 프로세스에서 공유하는 메모리의 양입니다. 이 항목은 일반적으로 swap과는 관련이 없습니다.
ⅴ. buff/cache: 시스템이 파일 시스템의 캐시를 위해 사용하는 메모리의 양을 나타냅니다. 이는 프로세스가 사용하는 것이 아니라 시스템의 I/O 성능을 향상시키기 위해 사용됩니다.
ⅵ. available: 실제로 프로세스에서 사용할 수 있는 메모리의 양을 보여줍니다. 이는 free 메모리와 cache된 메모리의 양을 포함합니다.
Ⅶ. Linux에서의 Swap 관리
ⅰ. Swappiness
Linux는 swappiness라는 매개변수를 통해 swap의 사용 빈도를 조정할 수 있습니다. 이 값은 0에서 100 사이의 정수로, 값이 낮을수록 RAM을 우선 사용하고 swap을 나중에 사용하게 됩니다. 기본값은 60입니다.
ⅱ. 모니터링
시스템의 swap 사용량을 정기적으로 모니터링하는 것은 중요합니다. 과도한 swap 사용은 성능 저하를 초래할 수 있으므로, 필요 시 swap 공간을 추가하거나 시스템 구성을 조정해야 할 수 있습니다.
'시스템(Linux)' 카테고리의 다른 글
Red Hat Enterprise Linux(RHEL)와 Rocky Linux 8.10에서 패스워드 정책을 확인하고 변경하는 방법에 대해 알아보겠습니다. (0) | 2024.11.05 |
---|---|
리눅스 환경에서의 환경 변수에 대해 알아보겠습니다. (0) | 2024.11.02 |
리눅스에서 디스크 I/O 문제로 인한 시스템 종료를 확인하는 방법 (0) | 2024.10.30 |
/var/log/messages 에 대해 알아보겠습니다. (0) | 2024.10.28 |
YAML(YAML Ain't Markup Language)에 대해 알아보겠습니다. (2) | 2024.10.25 |