Jay's <Devlog />Jay's Devlog
HomeBlogAbout
Login

© 2026 Jay's <Devlog />. All Rights Reserved.

GitHubLinkedIn
Gravatar
  1. Home
  2. Blog
  3. Linux
  4. Linux 메모리 Hardware Reserved 이슈 분석 및 Swap 운영 최적화 가이드
SYS ADMIN
Linux개인서버 9 min read

Linux 메모리 Hardware Reserved 이슈 분석 및 Swap 운영 최적화 가이드

jay

jay

2025년 12월 9일 23:21

미니 PC를 홈 서버로 세팅하던 중, 물리 메모리(RAM)는 16GB인데 시스템(Linux)에서는 12GB만 인식하는 현상을 발견했다.

이를 해결하기 위해 하드웨어 예약 메모리(Hardware Reserved) 원인을 분석하고, 서버 운영 안정성을 위해 Swap 메모리를 확장 및 커널 파라미터(Swappiness)를 튜닝한 과정을 기록한다.

목차

  • 1. 문제 상황 및 원인 분석
    • 1-1. 현상
    • 1-2. 원인 파악 (Hardware Reserved)
  • 2. 해결 과정 1: Swap File 기반 용량 증설
    • 수행 명령어
  • 3. 해결 과정 2: 커널 파라미터 튜닝 (vm.swappiness)
    • 적용 명령어
  • 4. 최종 결과 및 결론
    • Next Step

1. 문제 상황 및 원인 분석

1-1. 현상

free -h 명령어로 메모리 상태를 확인했을 때, 물리 메모리 16GB 중 약 12GB만 Total로 잡히는 현상 발생.

  • Total Mem: 12Gi (Physical 16GB)
  • Swap: 4.0Gi

1-2. 원인 파악 (Hardware Reserved)

dmidecode 명령어로 하드웨어 정보를 교차 검증함.

sudo dmidecode --type 17
# 결과: 16GB DDR5 SODIMM 모듈 정상 인식 확인
  • 분석 결과: RAM 불량이 아닌, 최신 미니 PC(Ryzen/Intel)의 내장 그래픽(iGPU)이 VRAM으로 약 4GB를 강제 할당(Hardware Reserved) 하고 있어 OS가 사용할 수 없는 영역으로 잡힘.
  • 대응 계획: 추후 BIOS의 UMA Frame Buffer Size 조정을 통해 VRAM을 축소하기로 하고, 우선 OS 레벨에서 가용성을 확보하기 위해 Swap을 증설하기로 결정.

2. 해결 과정 1: Swap File 기반 용량 증설

기존 파티션 방식 대신 유연한 관리가 가능한 Swap File 방식을 사용하여 4GB를 추가 할당함 (Total 8GB).

수행 명령어

# 1. 4GB 크기의 빈 파일 생성 (fallocate 사용)
sudo fallocate -l 4G /swap_add.img

# 2. 권한 설정 (보안상 root만 접근 허용)
sudo chmod 600 /swap_add.img

# 3. Swap 영역으로 포맷
sudo mkswap /swap_add.img

# 4. Swap 활성화
sudo swapon /swap_add.img

# 5. 재부팅 시 자동 마운트 설정 (fstab)
echo '/swap_add.img none swap sw 0 0' | sudo tee -a /etc/fstab

3. 해결 과정 2: 커널 파라미터 튜닝 (vm.swappiness)

RAM 여유 공간이 충분함에도(Available 7.8Gi) 시스템이 Swap을 적극적으로 사용하여 I/O 성능 저하가 우려됨.

  • AS-IS: vm.swappiness = 60 (기본값)
  • TO-BE:vm.swappiness = 10
    • 설정 의도: 물리 메모리가 약 90% 찰 때까지는 Swap 사용을 최대한 자제시켜 애플리케이션 반응 속도 향상.

적용 명령어

# 1. sysctl 설정 파일 수정
sudo vi /etc/sysctl.conf
# 하단에 'vm.swappiness=10' 추가

# 2. 설정 즉시 로드
sudo sysctl -p

# 3. 기존 Swap 메모리 Flush (RAM으로 데이터 이동)
sudo swapoff -a && sudo swapon -a

4. 최종 결과 및 결론

작업 수행 후 시스템 리소스 모니터링 결과는 다음과 같다.

  • Swap 용량: 4.0Gi → 8.0Gi (OOM Killer 방지 안정성 확보)
  • 메모리 효율: 주요 프로세스(Java, Python, MySQL)가 Swap이 아닌 물리 RAM 상주 비율이 높아짐.

Next Step

  • 모니터 연결 후 BIOS 진입하여 VRAM 할당량 최적화 (4GB → 1GB)

#Linux#Swappiness#메모리 인식#스왑 메모리

You might also like

[Jenkins] Docker로 띄운 Jenkins, 데이터 그대로 Kubernetes로 이관하기

#Helm#Jenkins#k3s

[Next.js + WordPress] 홈서버 배포기: ETIMEDOUT 해결부터 성능 최적화까지

#DevOps#Docker#Jenkins

Kubernetes K3s 환경에서 PostgreSQL HA 부하 테스트: pgbench로 검증하는 성능과 오토스케일링(HPA)

#Autoscaling#Helm#Home Lab

Comments (0)

Leave a Reply

Or login to comment with your account.

No comments yet. Be the first to share your thoughts!