피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Modern Standby 배터리 드레인 해결을 위한 ACPI 상태 최적화 및 Hibernate 전략
How to Fix Linux Suspend Draining Your Battery Overnight
AI 요약
Context
최신 노트북의 ACPI 테이블에서 전통적인 S3 Deep Sleep 지원이 제거되고 Windows 중심의 Modern Standby(s2idle)가 표준으로 채택됨에 따른 문제 발생. Linux 환경에서 s2idle의 불완전한 구현과 하드웨어 펌웨어 최적화 부족으로 인한 과도한 전력 소모 및 배터리 방전 현상이 지속되는 한계점 존재.
Technical Solution
- ACPI 지원 상태 확인을 통한 S3 Deep Sleep 강제 활성화로 CPU 전원 완전 차단 및 RAM 유지 구조 설계
- S3 미지원 장치 대상 CPU Package C-states(Pk%pc10) 모니터링을 통한 전력 차단 병목 지점 식별
- USB/Thunderbolt 컨트롤러 등 Wakeup 트리거 장치의 ACPI 이벤트를 차단하여 Deep Idle 상태 진입 유도
- 메모리 스왑 영역 확보 및 Resume 파라미터 설정을 통한 Suspend-to-Disk(Hibernate) 전환으로 전력 소비 제로화 구현
- Suspend 후 일정 시간 경과 시 Hibernate로 자동 전환하는 Suspend-then-Hibernate 하이브리드 전략 적용
실천 포인트
- /sys/power/mem_sleep 확인을 통한 S3(deep) 지원 여부 검증 - turbostat을 활용한 CPU Deep Package C-state 진입 여부 및 블로킹 장치 식별 - /proc/acpi/wakeup 설정을 통한 불필요한 Wakeup 트리거 제거 - Swap 공간 확보 및 커널 파라미터(resume, resume_offset) 설정을 통한 Hibernate 환경 구축