Jak zaplanować cichy, energooszczędny serwer VPN działający bez przerwy
Cichą skrzynkę VPN ocenia się po watach w spoczynku, hałasie obciążenia i tym, czy pozostaje osiągalna. Zmierz cały system w trzech stanach, zanim kupisz części.
Spoczynek to stan, w którym domowa skrzynka VPN spędza niemal całe życie, więc właśnie ten stan warto mierzyć. Ta sama maszyna musi jeszcze odpowiedzieć na połączenie, udostępnić plik i dokończyć kopię zapasową, gdy tunel jest podniesiony, a te trzy zadania ciągną w różnych kierunkach. Cisza, niski pobór mocy i stała osiągalność to odrębne właściwości, a karta katalogowa nie opisuje żadnej z nich. Przejście poniższych kontroli po kolei sprawia, że decyzja sprzętowa nie zamienia się po pół roku w przebudowę.
Zacznij od ról, nie od części
Zapisz każde zadanie, które skrzynka musi wykonywać, gdy nikt nie patrzy. Brama WireGuard lub OpenVPN, udostępnianie plików, cel kopii zapasowych i zadanie indeksowania mają różne koszty stałe, a maszyna robiąca wszystkie cztery ma znacznie wyższą podłogę niż ta, która robi tylko pierwsze. Pobór w spoczynku to suma tych podłóg, a nie ich średnia. Dlatego dwie skrzynki opisywane jako energooszczędne mogą różnić się trzykrotnie w tym samym pokoju.
Wczesna decyzja, czy dane mieszkają na tym samym hoście co tunel, ogranicza wszystko inne. Osobne hosty oznaczają dwa pobory w spoczynku, ale bramę, która czuwa, gdy pamięć masowa śpi; jeden host oznacza jeden pobór i jedną domenę awarii. Żadna opcja nie jest błędna, ale odpowiedź trzeba zapisać, zanim powstanie lista części.
Zmierz całą skrzynkę w trzech stanach
Miernik ścienny między gniazdkiem a zasilaczem to jedyne uczciwe narzędzie, bo obejmuje straty przetwarzania, rozruch dysków i każde urządzenie USB, o którym zapomniałeś. Zapisz trzy liczby: spoczynek z podniesionym tunelem i niczym innym, tę samą skrzynkę podczas prawdziwego transferu zdalnego i skrzynkę podczas zaplanowanej kopii zapasowej.
Liczniki programowe pomagają wyjaśnić odczyt miernika ściennego, ale go nie zastępują. Interfejs RAPL raportuje energię pakietu i domeny pamięci, co wyklucza straty zasilacza i wszystko podłączone przez 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}'
Hałas wymaga takiego samego podejścia. Obudowa bez wentylatorów usuwa jedno źródło i zostawia dysk twardy, zasilacz i piszczenie cewek, więc słuchaj podczas kopii zapasowej, a nie przy ekranie logowania. Temperatura należy do tej samej rundy: czytaj czujniki pod stałym obciążeniem i nigdy nie wyłączaj ochrony termicznej, żeby skrzynka była cichsza.
Zamień waty na porównywalny rok
Ciągły pobór zamienia się w energię jednym mnożeniem, a zrobienie tego raz sprawia, że roczny koszt nie jest niespodzianką. Ilustracyjna średnia 11 W w ciągu całego roku liczy się tak.
awk 'BEGIN{printf "%.1f kWh/year at 11 W\n", 11*24*365/1000}'
Ta liczba to arytmetyka, nie pomiar twojej skrzynki, a taryfa, przez którą ją mnożysz, przesuwa odpowiedź bardziej niż kilka watów. Obliczenie przydaje się do porównania dwóch projektów: brama w spoczynku pobierająca 6 W wobec tej pobierającej 15 W to decyzja, której można przypisać cenę. Moc znamionowa procesora nie jest tą liczbą, bo opisuje pakiet pod obciążeniem, a nie system w spoczynku. Użyj średniej z miernika ściennego z lokalną taryfą i oznacz wynik jako szacunek.
Zdecyduj, czy uśpienie jest dozwolone
Uśpienie oszczędza najwięcej energii i łamie najwięcej założeń. Uśpiony host nie może przyjąć połączenia przychodzącego, które by go obudziło, a keepalive klienta tego nie zmienia; tylko urządzenie stale włączone w tej samej sieci LAN może wysłać pakiet wake-on-LAN.
Jeśli tunel musi być osiągalny o każdej godzinie, traktuj uśpienie jako wyłączone polityką i zapisz to w notatkach z budowy. Maskowanie celów jest szorstkie, ale jest jawne i przeżywa aktualizacje pakietów lepiej niż nawyk.
systemctl status sleep.target suspend.target
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
systemd-inhibit --list
Wake-on-LAN zasługuje na własną linijkę w tych notatkach, bo zawodzi po cichu. Funkcję trzeba włączyć w firmware, działa tylko na niektórych interfejsach i wymaga urządzenia, które już jest obudzone, aby wysłać pakiet. Przetestuj ją, zanim na niej polegasz, a nie po podróży.
Udowodnij to pod obciążeniem, które naprawdę zobaczy
Ostatnia kontrola to ta, którą ludzie pomijają: uruchom zamierzone obciążenie i obserwuj skrzynkę przez godzinę. Zdalny transfer, kopia zapasowa i odbudowa indeksu jednocześnie pokażą, czy chłodzenie, łącze i pamięć masowa uniosą wybraną kombinację ról.
uptime
sensors | grep -E 'Core|Package|fan'
ss -s
W tym samym oknie obserwuj też łącze dostępowe, bo przepustowość wysyłania zwykle ogranicza wydajność zdalną znacznie wcześniej niż procesor. Jeśli tunel nasyca się przy ułamku tego, co procesor mógłby zaszyfrować, szybszy układ nie kupuje zupełnie niczego.