유휴 상태는 가정용 VPN 박스가 거의 전 생애를 보내는 상태이므로, 바로 그 상태를 측정할 가치가 있습니다. 같은 기계는 터널이 올라간 동안에도 연결에 응답하고 파일을 제공하며 백업을 끝내야 하는데, 이 세 가지 일은 서로 다른 방향으로 당깁니다. 조용함, 저전력, 상시 접근성은 별개의 속성이며, 사양서는 그중 어느 것도 설명하지 않습니다. 아래 점검을 순서대로 진행하면 하드웨어 결정이 여섯 달 뒤 재구축이 되는 일을 막을 수 있습니다.

부품이 아니라 역할부터 시작하세요

아무도 보지 않을 때 박스가 해야 하는 모든 일을 적어 두세요. WireGuard 또는 OpenVPN 게이트웨이, 파일 공유, 백업 대상, 인덱싱 작업은 고정 비용이 서로 다르고, 네 가지를 모두 하는 기계는 첫 번째만 하는 기계보다 훨씬 높은 바닥을 가집니다. 유휴 소비는 그 바닥들의 평균이 아니라 합계입니다. 그래서 둘 다 저전력이라고 불리는 두 박스가 같은 방에서 세 배까지 차이날 수 있습니다.

데이터가 터널과 같은 호스트에 사는지 일찍 결정하는 것이 나머지 모든 것을 제약합니다. 호스트를 나누면 유휴 소비가 두 개가 되지만 저장소가 자는 동안 게이트웨이는 깨어 있고, 호스트가 하나면 소비도 하나, 장애 영역도 하나입니다. 어느 쪽도 틀리지 않지만, 부품 목록이 생기기 전에 답을 적어야 합니다.

세 가지 상태에서 박스 전체를 측정하세요

콘센트와 전원 공급 장치 사이의 벽면 전력계가, 변환 손실과 디스크 회전, 잊고 있던 모든 USB 장치를 포함하기 때문에, 여기서 유일하게 정직한 도구입니다. 세 가지 숫자를 기록하세요: 터널을 올리고 다른 것은 아무것도 돌리지 않는 유휴, 실제 원격 전송 중인 같은 박스, 예약된 백업 중인 박스입니다.

소프트웨어 카운터는 벽면 전력계 판독을 설명하는 데 도움이 되지만 그것을 대체하지는 않습니다. RAPL 인터페이스는 패키지와 메모리 도메인의 에너지를 보고하는데, 전원 공급 장치 손실과 USB로 연결된 모든 것을 제외합니다.

read -r a < /sys/class/powercap/intel-rapl:0/energy_uj; sleep 60; read -r b < /sys/class/powercap/intel-rapl:0/energy_uj
awk -v a="$a" -v b="$b" 'BEGIN{printf "package average: %.1f W\n", (b-a)/60/1000000}'

소음도 같은 대접이 필요합니다. 팬이 없는 케이스는 한 가지 소스를 없애고 하드 디스크, 전원 공급 장치, 코일 소리를 남기므로, 로그인 프롬프트가 아니라 백업 중에 귀를 기울이세요. 온도도 같은 회차에 속합니다: 지속 부하에서 센서를 읽고, 박스를 더 조용하게 만들기 위해 열 보호를 절대 끄지 마세요.

와트를 비교할 수 있는 연간 비용으로 바꾸세요

연속 소비는 한 번의 곱셈으로 에너지가 되고, 한 번 계산해 두면 연간 비용이 놀라움이 되지 않습니다. 일 년 내내 11 W 평균의 예시는 다음과 같이 계산됩니다.

awk 'BEGIN{printf "%.1f kWh/year at 11 W\n", 11*24*365/1000}'

그 숫자는 산술이며 당신의 박스 측정값이 아니고, 거기에 곱하는 요금이 몇 와트보다 답을 더 크게 움직입니다. 이 계산이 쓸모 있는 것은 두 설계를 비교할 때로, 유휴 6 W 게이트웨이와 15 W 게이트웨이의 비교는 값을 매길 수 있는 결정입니다. 프로세서의 정격 와트는 부하 상태의 패키지를 설명하고 휴식 중인 시스템을 설명하지 않으므로 그 숫자가 아닙니다. 벽면 전력계의 평균을 현지 요금과 함께 사용하고, 결과를 추정치로 표시하세요.

절전을 허용할지 결정하세요

절전은 가장 많은 에너지를 아끼고 가장 많은 가정을 깨뜨립니다. 잠든 호스트는 자기를 깨울 인바운드 연결을 받아들일 수 없고, 클라이언트 keepalive도 그것을 바꾸지 않으므로, 같은 LAN에서 항상 켜져 있는 장치만 wake-on-LAN 패킷을 보낼 수 있습니다.

터널이 어느 시간에나 접근 가능해야 한다면 절전을 정책상 비활성으로 취급하고, 그 내용을 빌드 노트에 적으세요. 대상을 마스킹하는 것은 무뚝뚝하지만 명시적이며, 습관보다 패키지 업그레이드를 더 잘 견딥니다.

systemctl status sleep.target suspend.target
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
systemd-inhibit --list

Wake-on-LAN은 조용히 실패하기 때문에 그 노트에서 자기 줄을 받을 자격이 있습니다. 이 기능은 펌웨어에서 켜야 하고, 일부 인터페이스에서만 동작하며, 패킷을 보내려면 이미 깨어 있는 장치가 필요합니다. 의존하기 전에, 여행 후가 아니라 시험하세요.

실제로 보게 될 부하에서 증명하세요

마지막 점검은 사람들이 건너뛰는 것으로, 의도한 부하를 실행하고 한 시간 동안 박스를 지켜보세요. 원격 전송, 백업, 인덱스 재구축을 동시에 하면 냉각, 링크, 저장소가 선택한 역할 조합을 감당할 수 있는지 드러납니다.

uptime
sensors | grep -E 'Core|Package|fan'
ss -s

업스트림 대역폭은 보통 프로세서보다 훨씬 먼저 원격 처리량을 제한하므로, 같은 시간에 액세스 링크도 보세요. 터널이 CPU가 암호화할 수 있는 양의 일부에서 포화된다면, 더 빠른 칩은 아무것도 사지 못합니다.

관련 글