미니PC 서버, 소비전력 절약— R7-7840HS ryzenadj 15W 세팅

미니PC 서버, 소비전력 절약— R7-7840HS ryzenadj 15W 세팅

미니PC 서버, 소비전력 절약하기 — R7-7840HS ryzenadj 15W 세팅 실전기
홈서버 인프라 · 전력 최적화

미니PC 서버, 소비전력 절약하기
— R7-7840HS ryzenadj 15W 세팅 실전기

54W짜리 고성능 APU를 15W로 조여서 상용 NAS 수준의 정숙함을 만든다. 소스 빌드부터 Systemd 영구 적용까지, 실제 터미널 로그와 함께 기록한다.

Ubuntu Server RyzenAdj R7-7840HS cTDP 2026.03.27

미니PC를 홈서버로 굴리기 시작하면 반드시 부딪히는 문제가 있다. 팬 소음과 전력이다. R7-7840HS는 기본 TDP 54W에 부스트 시 더 올라가는 물건이라, 아무 조치 없이 서버 용도로 24시간 틀어놓으면 전기세와 소음 양쪽에서 신경이 쓰인다.

시놀로지나 큐냅 같은 상용 NAS의 소비전력이 대개 10~25W 사이인 걸 감안하면, 이 APU의 전력 상한선을 15W 언저리로 잡아주는 게 합리적이다. 문제는 BIOS에서 cTDP를 직접 제어할 수 있는 미니PC가 드물다는 건데 — 리눅스 유저라면 ryzenadj로 소프트웨어 레벨에서 강제로 걸 수 있다.

오늘 실제로 적용한 과정을 터미널 로그 그대로 정리한다.


작업 환경

CPU
R7-7840HS
Phoenix Point / Zen4 8C16T
기본 TDP
54W
PPT LIMIT APU 기준
목표 세팅
15W
상용 NAS 수준으로 억제
OS
Ubuntu 24.04
Server / CLI only

1

ryzenadj 소스 빌드 및 설치

ryzenadj는 AMD Ryzen APU의 전력·온도·전류 파라미터를 커맨드라인에서 직접 조작할 수 있는 오픈소스 유틸리티다. 패키지 매니저에 올라와 있지 않으므로 GitHub에서 소스를 받아 직접 컴파일해야 한다.

bash
# 빌드에 필요한 의존성 패키지 설치
sudo apt update
sudo apt install -y build-essential cmake libpci-dev git

# 소스 클론 → 빌드 디렉토리 생성 → 컴파일
git clone https://github.com/FlyGoat/RyzenAdj.git
cd RyzenAdj
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

# 시스템 전역 경로로 바이너리 복사
sudo cp ryzenadj /usr/local/bin/

빌드 과정에서 libpci-dev가 빠지면 cmake 단계에서 에러가 난다. 혹시 의존성 문제가 걸리면 이 패키지부터 확인하자.

컴파일이 끝나면 /usr/local/bin/으로 바이너리를 옮겨두는데, 이후 Systemd 서비스에서 절대경로로 호출하기 위함이다.


2

수동 전력 제한 테스트 — 15W 고정

서비스로 등록하기 전에, 명령어가 제대로 먹히는지 수동으로 한 번 때려본다.

bash
sudo ryzenadj --stapm-limit=15000 --fast-limit=15000 --slow-limit=15000

ryzenadj의 전력 단위는 밀리와트(mW)다. 15W = 15,000mW. 세 가지 파라미터를 전부 같은 값으로 잡아야 단기 부스트 없이 일관되게 15W로 묶인다.

파라미터 역할 비유
–stapm-limit 장기 지속 전력 상한 (기본 TDP) 평소 달리는 속도의 리미터
–fast-limit 단기 피크 전력 허용치 (짧은 터보) 순간 추월 시 밟을 수 있는 최대 가속
–slow-limit 장기 부하 시 전력 상한 오르막에서 유지할 수 있는 최대 속력
✔ 실행 결과

터미널에 Successfully set stapm_limit to 15000 외 2줄이 뜨면 성공이다. no compatible ryzen_smu kernel module found, fallback to /dev/mem 경고는 커널 모듈 없이 메모리 직접 접근으로 우회한 것이라 정상 동작에 영향 없다.


3

Systemd 서비스 등록 — 재부팅에도 영구 적용

ryzenadj의 약점이 하나 있다. 재부팅하면 설정이 날아간다. 소프트웨어 레벨에서 SMU 레지스터를 건드리는 방식이라 전원이 끊기면 초기화되기 때문이다.

그래서 Systemd의 oneshot 서비스로 등록해서, 부팅 직후 자동으로 전력 제한 명령이 실행되게 만든다.

/etc/systemd/system/ryzenadj.service
[Unit]
Description=Ryzen Power Adjustment Service
After=multi-user.target

[Service]
Type=oneshot
# 아래 15000 값을 원하는 전력량(mW)으로 수정하여 사용하세요.
ExecStart=/usr/local/bin/ryzenadj --stapm-limit=15000 --fast-limit=15000 --slow-limit=15000
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

서비스 파일 구조 해부

항목 설정값 이유
Type=oneshot 1회 실행 후 종료 상주 데몬이 아니라 명령어 한 번 때리고 끝나는 구조
After=multi-user.target 다중 사용자 모드 진입 후 시스템 초기화가 끝난 뒤 실행해야 안정적
RemainAfterExit=yes 종료 후에도 active 유지 systemctl status로 상태 확인 시 성공 여부를 볼 수 있게

파일을 저장한 뒤, 데몬 리로드 → 서비스 활성화 → 시작 → 상태 확인 순서로 진행한다.

bash
sudo systemctl daemon-reload
sudo systemctl enable ryzenadj.service
sudo systemctl start ryzenadj.service
sudo systemctl status ryzenadj.service
✔ 실제 적용 결과 — 터미널 로그

Active: active (exited) 상태와 함께 아래 3줄이 찍히면 완벽하게 동작하는 것이다.

● ryzenadj.service – Ryzen Power Adjustment Service Loaded: loaded (/etc/systemd/system/ryzenadj.service; enabled) Active: active (exited) since Fri 2026-03-27 04:27:48 UTC ryzenadj[1066381]: Successfully set stapm_limit to 15000 ryzenadj[1066381]: Successfully set fast_limit to 15000 ryzenadj[1066381]: Successfully set slow_limit to 15000

4

적용 검증 — ryzenadj -i 테이블 읽는 법

sudo ryzenadj -i를 실행하면 현재 CPU의 전력 파라미터 전체를 테이블 형태로 볼 수 있다. 여기서 핵심적으로 확인할 항목은 딱 6개다.

항목 의미 적용 후 값 판정
STAPM LIMIT 장기 TDP 상한 15.000W ✔ 적용됨
STAPM VALUE 현재 실시간 전력 8.575W Idle 상태 정상
PPT LIMIT FAST 단기 피크 전력 상한 15.000W ✔ 적용됨
PPT LIMIT SLOW 장기 부하 전력 상한 15.000W ✔ 적용됨
THM VALUE CORE 현재 코어 온도 43.1°C 쿨링 여유 충분
PPT LIMIT APU APU 기본 PPT (변경 불가) 54.000W 하드웨어 기본값

Idle 상태에서 STAPM VALUE가 약 8.5W로 찍히는 걸 보면, 15W 리미터 안에서 여유 있게 돌아가고 있다는 뜻이다. 코어 온도도 43°C로, 팬이 거의 안 도는 수준이다.


5

실시간 모니터링 — 눈으로 확인하는 세 가지 방법

세팅이 끝났으면 진짜 잘 걸려 있는지 실시간으로 들여다봐야 마음이 놓인다. CLI 환경에서 쓸 수 있는 모니터링 도구를 세 가지 소개한다.

스냅샷 확인
ryzenadj -i
방금 쓴 그 명령어. 현재 LIMIT 값과 실시간 VALUE를 한 번에 보여준다. 빠르게 세팅 상태만 점검할 때 유용.
★ 추천
s-tui
터미널 안에서 그래프 UI로 Power, Temp, Freq를 실시간 모니터링. sudo apt install s-tui로 설치 후 sudo s-tui로 실행.
정밀 센서
turbostat
커널 레벨 유틸리티. PkgWatt, CorWatt 등 정밀한 전력 수치를 텍스트 테이블로 출력. linux-tools-generic 패키지 필요.
💡 현장 엔지니어의 팁

s-tui를 SSH 세션에서 띄워놓고, 다른 터미널에서 stress --cpu 16 같은 부하를 걸어보면 15W 천장에 딱 걸리는 그래프를 실시간으로 볼 수 있다. 이걸로 리미터가 진짜 작동하는지 눈으로 검증하는 게 가장 확실하다.


6

전력값 튜닝 가이드 — 15W가 정답은 아니다

15W는 “상용 NAS 수준의 정숙함”을 기준으로 잡은 출발점이지, 모든 워크로드에 맞는 값은 아니다. 도커 위에서 Plex 트랜스코딩을 돌리거나 Webtop으로 브라우징을 하면 체감 버벅임이 느껴질 수 있다.

세팅값 적합한 용도 체감
15W (15000) 파일 서버, NAS, 경량 컨테이너, SSH 접속용 팬 거의 정지 / 전기세 최소
20W (20000) Docker 다중 컨테이너, 가벼운 미디어 서빙 팬 저속 / 쾌적한 반응속도
25W (25000) Plex 실시간 트랜스코딩, Webtop, 빌드 작업 팬 가끔 도는 수준 / 준데스크탑 성능
35W+ 무거운 연산 집중 작업 미니PC 특성상 발열·소음 급증 구간
⚠ 주의사항

ryzenadj는 소프트웨어 수준의 전력 제한이라, BIOS 설정이나 커널 업데이트 등으로 리셋될 수 있다. Systemd 서비스가 정상적으로 enabled 상태인지 주기적으로 확인하는 습관을 들이는 게 좋다. 또한 TDC/EDC(전류 제한)는 이번 세팅에서 건드리지 않았는데, 전력 제한만으로 충분히 목적을 달성할 수 있기 때문이다. 추후 더 세밀한 튜닝이 필요하면 --vrm-current, --vrmmax-current 등의 파라미터를 함께 조정할 수 있다.


마무리 — 전력 다이어트의 실익

이 세팅을 적용한 뒤 체감되는 변화는 크게 세 가지다.

팬 소음
거의 무소음
15W 세팅 + Idle 8.5W에서 팬이 돌 이유가 없다
코어 온도
43°C
Idle 기준. 열 스트레스 제로
전력 효율
NAS급
24시간 가동 기준 전기세 체감 차이 확실

R7-7840HS의 Zen4 아키텍처 자체가 전력 효율이 좋은 편이라, 15W로 조여도 NAS + 경량 컨테이너 워크로드에서는 성능 부족을 느끼기 어렵다. 서버 용도에서 이 CPU가 가진 포텐셜의 극히 일부만 쓰는 셈이니, 전력 쪽을 타이트하게 잡아도 일상 운영에 지장이 없는 것이다.

다만 간헐적으로 무거운 작업이 필요한 경우를 대비해 ryzenadj 명령어로 즉시 전력 상한을 올릴 수 있다는 점도 기억해 두면 좋다. 서비스 파일의 값을 수정하고 systemctl restart ryzenadj.service 한 방이면 된다.