🔍 들어가며
서버 패키지 업데이트를 위해 yum update를 실행했습니다. 업데이트 도중 SSH 연결이 끊기고 서버가 멈춰버리는 현상이 발생했고, 시스템 메모리가 부족하여 yum update 시 필요한 메모리를 감당하지 못하고, 커널이 프로세스를 강제로 종료되었습니다.
이와 같은 상황을 방지하기 위해, Swap 메모리를 설정하는 방법을 공유해 보겠습니다.
💡 메모리와 Swap 간단 개념
- 메모리(RAM): 빠른 속도의 임시 저장 공간. 실행 중인 프로그램들이 사용하는 공간입니다.
- Swap: 디스크 공간을 메모리처럼 사용하는 영역입니다. 속도는 느리지만, 메모리 부족 상황에서 유용합니다.
💻 가상 메모리와 Swap 메모리
- 가상 메모리:
- 정의: 물리 메모리(RAM)보다 큰 메모리 공간을 제공하기 위해, 운영체제가 물리 메모리와 디스크를 조합해 관리하는 기술입니다.
- 동작: 실제 프로그램은 물리 메모리 주소를 직접 사용하는 것이 아니라, 가상 주소를 사용하고 운영체제가 이를 물리 주소로 변환해줍니다.
- 장점:
✅ 물리 메모리가 부족해도 시스템이 멈추지 않음
✅ 여러 프로세스가 독립적인 메모리 공간을 가진 것처럼 동작 - 비유: "가상의 큰 책상"을 만들어서 실제 책상이 부족해도 다른 공간(디스크)에 임시로 책을 올려두는 것과 비슷합니다.
- Swap 메모리:
- 정의: 가상 메모리 시스템에서, 물리 메모리가 부족할 때 사용되는 디스크 공간입니다.
- 동작: 사용 빈도가 낮은 데이터나 프로세스의 일부를 RAM에서 하드디스크나 SSD의 스왑 영역으로 이동합니다.
- 장점과 단점:
✅ 시스템이 강제 종료되는 것을 방지
⚠️ 디스크 I/O가 느려서 성능 저하 발생 가능
🏆 가상 메모리와 스왑 메모리의 차이점
| 구분 | 가상 메모리 | Swap 메모리 |
| 역할 | 메모리 관리 기법 | 가상 메모리 구현의 일부 |
| 위치 | 주로 RAM + 일부 디스크 | 디스크에 따로 설정된 공간 |
| 목적 | 메모리 주소 관리 | 메모리 부족 시 임시 공간 제공 |
| 성능 | RAM 위주 (빠름) | 디스크 사용 (느림) |
✅ 리눅스에서 Swap 메모리 설정 방법
1️⃣ 현재 Swap 확인
$ free -h
total used free shared buff/cache available
Mem: 951Mi 319Mi 584Mi 3.0Mi 185Mi 631Mi
Swap: 950Mi 123Mi 827Mi
또는
swapon --show
NAME TYPE SIZE USED PRIO
/.swapfile file 951M 123.9M -2
→ 출력 결과에 swap이 없거나 0이라면 설정이 필요한 상태입니다
2️⃣ Swap 파일 생성
-- 2GB Swap 파일 생성
$ sudo fallocate -l 2G /swapfile
3️⃣ Swap 파일 권한 설정
- 보안 상 root만 접근 가능해야 합니다.
sudo chmod 600 /swapfile
4️⃣ Swap 영역 생성
sudo mkswap /swapfile
5️⃣ Swap 활성화
sudo swapon /swapfile
→ 다시 확인:
-- <Before>
$ free -h
total used free shared buff/cache available
Mem: 503Mi 261Mi 11Mi 1.0Mi 263Mi 242Mi
Swap: 502Mi 64Mi 438Mi
-- <After>
$ free -h
total used free shared buff/cache available
Mem: 951Mi 333Mi 517Mi 3.0Mi 237Mi 617Mi
Swap: 2.9Gi 120Mi 2.8Gi
6️⃣ 부팅 시 자동 적용 설정
- /etc/fstab 파일에 아래 한 줄 추가:
$ sudo vi /etc/fstab
...
/swapfile none swap sw 0 0
...
'🐧 Linux_이야기' 카테고리의 다른 글
| [Linux] SSH 서버 간 접속(ssh-keygen) (0) | 2026.02.25 |
|---|---|
| [Linux] 시간 동기화(Time Sync) (0) | 2026.02.05 |
| [Linux] Host-Only 네트워크가 안 잡히는 문제 (0) | 2026.01.29 |
| [Linux] SSH 접속 안 될 때 확인 (2) | 2026.01.08 |
| [Linux] yum 에러 - 'connot find a valid baseurl for repo: base/7/x86_64' (0) | 2024.11.27 |