티스토리 뷰
Swap memory란?
시스템의 물리적 메모리(RAM)가 부족할 때 하드 디스크나 SSD의 일부를 마치 메모리처럼 사용할 수 있도록 지정한 가상 메모리 영역을 말한다.
[장점]
메모리가 부족한 상항에서 시스템 안정성을 높여준다.
[단점]
디스크 속도가 RAM보다 느릴 수 있기 때문에 스왑 메모리를 사용하면 데이터 접근 속도가 느려질 수 있다.
스왑 메모리 설정 (4GB)
sudo dd if=/dev/zero of=/swapfile bs=128M count=32
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo vi /etc/fstab
# 아래 내용 추가 후 저장
/swapfile swap swap defaults 0 0
free // 해당 명령어로 스왑 메모리 추가되었는지 확인
Swap memory 설정 후 변경


- total: 총 메모리
- used: 사용 중
- free: 여유 메모리
- shared: 공유 메모리로 여러 프로세스가 함께 사용하고 있는 메모리 영역
- buff/cache: 운영체제가 디스크 IO 성능 향승을 위해 사용하는 메모리로 필요시 쉽게 회수할 수 있는 공간
- available: 새로운 프로세스나 어플리케이션이 사용할 수 있는 메모리 량이다. free와 캐시에서 회수 가능한 메모리를 포함한다.
스왑 메모리를 사용하고 있지 않은 이유
운영체제는 물리 메모리를 우선적으로 사용하려한다. 따라서 물리 메모리가 부족하지 않으면 굳이 스왑 메모리를 사용하지 않는다.
스왑 메모리는 데이터를 디스크로 옮기는 방식을 포함하기 때문에 속도가 물리 메모리에 비해 상대적으로 느리다. 따라서 물리 메모리를 우선적으로 사용한다.
free는 내려가고 buff/cache가 오른 이유
이는 자연스러운 현상이다.
리눅스는 스왑 메모리가 있으니까 사용하지 않고 있는 물리 메모리를 버퍼나 캐시로 최대한 활용해 I/O 성능을 높이려고 한다. 그래서 free는 내려가고 buff/cache가 오른 것이다.
운영체제는 어차피 스왑 메모리 공간을 쓸 수 있으니 물리 메모리를 좀 더 캐싱에 적극 활용해도 된다고 판단한다.
buff/cache가 높으면 메모리를 많이 사용 중인 것인가?
buff/cache는 ‘사용 중’이 아닌 ‘대기 중’이다. buff/cache가 높다고 해도 실제 여유 메모리가 부족해진 것이 아니다. 실제로 available을 확인해 보면 스왑 메모리를 설정했다고 해서 변화가 없다. 캐시 메모리는 상황에 따라 재사용 가능하기 때문에 사실상 ‘예비 메모리’와 비슷한 개념이다.
스왑 메모리를 무조건 많이 해두면 좋은 것 아닌가?
아니다. 앞서 단점에서 보았듯이 스왑 메모리는 물리 메모리(RAM) 보다 훨씬 느리다. 만약 스왑 메모리를 자주 사용하게 된다면 디스크 I/O가 증가면서 전체 시스템 응답 속도가 떨어질 수 있다.
따라서 물리 메모리만으로 충분한 상황에서 스왑 메모리를 무조건 높게 설정해 두면 오히려 성능만 떨어트리는 결과로 이어질 수 있다.
스왑 메모리 공간을 충분히 확보해 두면 메모리 부족으로 인한 크래시를 방지할 수 있지만 속도 저하로 전체 성능에 저하될 수 있다. 따라서 메모리 부족 현상이 지속해서 발생한다면 물리 메모리를 업그레이드하는 것이 장기적으로 더 효과적이다.
'개발 스토리' 카테고리의 다른 글
| 비동기 작업을 빠르게 도와주는 코루틴 (0) | 2025.04.05 |
|---|---|
| 토큰 Blacklist를 Redis로 관리해도 될까? (0) | 2025.03.28 |
| MySQL 원격 연결 에러 및 해결 (feat. GCP 인바운드) (0) | 2025.03.09 |
| sh 실행 시 문법 오류 해결법 (0) | 2025.03.09 |
| Redis를 사용한다면 Session 대신 JWT를 사용할 필요가 있을까? (0) | 2025.03.06 |
- Total
- Today
- Yesterday
- 코루틴
- 캐시 스템피드
- 6기
- 우테코 준비
- API 지연
- 우테코
- 토스 백앤드 합격
- 커넥션 데드락
- Assertions
- 우아한테크코스
- 우아한테크코스 후기
- 게임개발
- 토스 next 2025
- 자바
- redis
- 분산락
- 우아한테크코스 6기
- stoplight
- 우테코 프리코스
- 토스 2025 NEXT
- 토스 합격 후기
- 알고리즘
- 우아한테크코스 자소서
- 파이썬
- 레디스
- 토스 NEXT 후기
- 우테코 6기
- JWT
- Cache Stampede
- 토큰
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |