چگونه یک سرور VPN ساکت، کممصرف و همیشهروشن را برنامهریزی کنیم
یک جعبه VPN ساکت با وات مصرف در حالت بیکاری، صدای بار کاری و این که آیا قابل دسترس میماند سنجیده میشود. پیش از خرید قطعات، کل سیستم را در سه حالت اندازه بگیرید.
بیکاری حالتی است که یک جعبه 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 وات در یک سال کامل چنین محاسبه میشود.
awk 'BEGIN{printf "%.1f kWh/year at 11 W\n", 11*24*365/1000}'
این عدد حساب است، نه اندازهگیری جعبه شما، و تعرفهای که آن را در آن ضرب میکنید پاسخ را بیش از چند وات جابهجا میکند. فایده محاسبه مقایسه دو طرح است: یک دروازه با بیکاری 6 وات در برابر یکی با 15 وات تصمیمی است که میتوانید قیمتگذاری کنید. توان نامی پردازنده آن عدد نیست، چون بسته زیر بار را توصیف میکند نه سیستمی در حال استراحت. میانگین واتمتر دیواری را با تعرفه محلی به کار ببرید و نتیجه را تخمین بنامید.
تصمیم بگیرید که آیا خواب مجاز است
خواب بیشترین انرژی را ذخیره میکند و بیشترین فرضها را میشکند. میزبان خوابیده نمیتواند اتصال ورودیای را که بیدارش میکند بپذیرد و 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
پیوند دسترسی را هم در همان پنجره ببینید، چون پهنای باند بالادست معمولاً خیلی پیش از پردازنده عملیات راه دور را محدود میکند. اگر تونل در کسری از آنچه پردازنده میتوانست رمزگذاری کند اشباع شود، تراشه سریعتر هیچ چیزی نمیخرد.