Zo plan je een stille, energiezuinige VPN-server die altijd aan staat
Een stille VPN-box wordt beoordeeld op watt in rust, geluid van de werklast en of hij bereikbaar blijft. Meet het hele systeem in drie toestanden voordat je onderdelen koopt.
Rust is de toestand waarin een thuis-VPN-box bijna zijn hele leven doorbrengt, dus dat is de toestand die het meten waard is. Dezelfde machine moet nog steeds een verbinding beantwoorden, een bestand serveren en een back-up afronden terwijl de tunnel actief is, en die drie taken trekken in verschillende richtingen. Stil, energiezuinig en altijd bereikbaar zijn aparte eigenschappen, en een specsheet beschrijft geen ervan. Als je de controles hieronder op volgorde doorloopt, wordt een hardwarebeslissing zes maanden later geen herbouw.
Begin met de rollen, niet met de onderdelen
Schrijf elke taak op die de box moet doen terwijl niemand kijkt. Een WireGuard- of OpenVPN-gateway, een bestandsshare, een back-updoel en een indexeringstaak hebben verschillende vaste kosten, en één machine die alle vier doet heeft een veel hogere vloer dan een die alleen de eerste doet. Rustverbruik is de som van die vloeren, niet het gemiddelde. Daarom kunnen twee boxen die allebei als energiezuinig worden beschreven in dezelfde kamer een factor drie verschillen.
Vroeg beslissen of de gegevens op dezelfde host wonen als de tunnel beperkt al het andere. Gescheiden hosts betekenen twee rustverbruiken, maar een gateway die wakker blijft terwijl de opslag slaapt; één host betekent één verbruik en één faaldomein. Geen van beide is fout, maar het antwoord moet opgeschreven worden voordat de onderdelenlijst bestaat.
Meet de hele box in drie toestanden
Een wandmeter tussen het stopcontact en de voeding is hier het enige eerlijke instrument, want hij omvat conversieverliezen, het opspinnen van schijven en elk USB-apparaat dat je vergeten was. Noteer drie getallen: rust met de tunnel actief en niets anders aan de gang, dezelfde box onder een echte externe overdracht en de box tijdens een geplande back-up.
Softwaretellers helpen de wandmeting te verklaren, maar vervangen hem niet. De RAPL-interface rapporteert energie van package en geheugendomein, wat verliezen van de voeding en alles wat via USB is aangesloten uitsluit.
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}'
Geluid vraagt dezelfde behandeling. Een kast zonder ventilatoren haalt één bron weg en laat de harde schijf, de voeding en het gespin van spoelen over, dus luister tijdens een back-up en niet bij het inlogscherm. Temperatuur hoort in dezelfde ronde: lees de sensoren onder aanhoudende belasting, en schakel nooit thermische bescherming uit om een box stiller te maken.
Reken watt om naar een jaar dat je kunt vergelijken
Doorlopend verbruik wordt met één vermenigvuldiging energie, en dat één keer doen voorkomt dat de jaarkosten een verrassing worden. Een illustratief gemiddelde van 11 W over een heel jaar wordt zo berekend.
awk 'BEGIN{printf "%.1f kWh/year at 11 W\n", 11*24*365/1000}'
Dat getal is rekenwerk, geen meting van jouw box, en het tarief waarmee je het vermenigvuldigt verschuift het antwoord meer dan een paar watt. De berekening is nuttig om twee ontwerpen te vergelijken: een gateway die in rust 6 W gebruikt tegen een van 15 W is een beslissing die je kunt beprijzen. Het nominale wattage van een processor is dat getal niet, want het beschrijft een package onder belasting en geen systeem in rust. Gebruik het gemiddelde van de wandmeter met het lokale tarief, en bestempel het resultaat als schatting.
Beslis of slapen is toegestaan
Slapen bespaart de meeste energie en breekt de meeste aannames. Een slapende host kan de inkomende verbinding die hem zou wekken niet aannemen, en een client-keepalive verandert dat niet; alleen een apparaat dat altijd aan staat op hetzelfde LAN kan een wake-on-LAN-pakket sturen.
Als de tunnel op elk uur bereikbaar moet zijn, behandel slaap dan als per beleid uitgeschakeld en schrijf dat in de build-notities. De doelen maskeren is bot, maar het is expliciet en overleeft pakketupdates beter dan een gewoonte.
systemctl status sleep.target suspend.target
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
systemd-inhibit --list
Wake-on-LAN verdient een eigen regel in die notities omdat het stil faalt. De functie moet in de firmware zijn ingeschakeld, werkt alleen op sommige interfaces en heeft een apparaat nodig dat al wakker is om het pakket te sturen. Test het voordat je erop vertrouwt, niet na een reis.
Bewijs het onder de belasting die het echt zal zien
De laatste controle is degene die mensen overslaan: draai de bedoelde belasting en kijk een uur naar de box. Een externe overdracht, een back-up en een indexherbouw tegelijk laten zien of de koeling, de link en de opslag de gekozen rollencombinatie kunnen dragen.
uptime
sensors | grep -E 'Core|Package|fan'
ss -s
Kijk in hetzelfde venster ook naar de toegangslink, want upstream-bandbreedte beperkt de externe doorvoer meestal lang voordat de processor dat doet. Als de tunnel verzadigt bij een fractie van wat de CPU zou kunnen versleutelen, koopt een snellere chip helemaal niets.