فهرستی عمومی از گره‌ها سروری را با زمان کارکردی که با هفته اندازه‌گیری می‌شود نشان می‌دهد، پس آن را انتخاب می‌کنید و اتصال در همان تلاش نخست شکست می‌خورد. این تبلیغ دروغین نیست؛ پرسیدن سؤال اشتباه از عددی است که چیز دیگری را می‌سنجد. زمان کارکرد معمولاً نشان می‌دهد یک فرایند، کانتینر یا ماشین از آخرین راه‌اندازی‌اش چه مدت در حال اجراست، و این ویژگی زیرساخت ناشر است نه مسیر شما به آن. برخورد با آن به‌عنوان قابلیت اطمینان همان خطای مقوله‌ای است که با کیلومترشمار خودرو به‌عنوان گزارش جاده انجام می‌دهیم.

عدد چه چیزی را می‌سنجد

روی میزبانی با مدیر سرویس مدرن، شمارنده به رویدادی لنگر می‌اندازد که واقعاً می‌توانید بخوانید: برچسب زمانی که واحد به وضعیت فعال وارد شد، یا زمان بوت ماشین. هر چیز دیگری حساب روی همان لنگر است، و تعریف لنگر میان ناشران متفاوت است. یک فهرست ممکن است با راه‌اندازی دوباره دیمن صفر شود، دیگری با ریبوت، و سومی با بازنشانی دستی که اپراتوری خواستار نموداری تمیز انجام داده است.

systemctl show -p ActiveEnterTimestamp --value openvpn-server@server
uptime -s
systemctl is-active openvpn-server@server

آن سه فرمان به سه پرسش متفاوت پاسخ می‌دهند، و فهرست راهنمایی که یک عدد نشان می‌دهد نمی‌تواند بگوید کدام‌یک را به کار برده است. پس مقایسه شمارنده خام از دو فهرست تا زمانی که ندانید هر یک روی چه چیزی صفر می‌شود، اصلاً مقایسه نیست.

فرایند می‌تواند بالا باشد در حالی که مسیر پایین است

دیمن گوش می‌دهد. گواهی معتبر است. فرایند بیست و سه روز است که زنده است. هیچ‌یک از این‌ها تضمین نمی‌کند که بسته‌های شبکه شما به آن برسند، زیرا دسترس‌پذیری ویژگی کل مسیر است: پیوند بالاروی ارائه‌دهنده، همتاسازی میان شبکه او و شبکه شما، ازدحام روی پیوند ترانزیت مشترک، و دیوار آتش پیش از اتصال خودتان.

سرور می‌تواند به دلیل دیگری هم بالا و بی‌فایده باشد. گره‌ای که بسیار بیشتر از ظرفیت پهنای باندش مشتری پذیرفته است، زمان کارکردی طولانی و تجربه‌ای وحشتناک نشان می‌دهد، چون شمارنده ظرفیت یا رقابت را نمی‌سنجد. این رایج‌ترین راهی است که گره‌ای با زمان کارکرد طولانی ناامید می‌کند: هیچ چیزی خراب نیست، همه چیز مشغول است.

حالت عکس هم ارزش به‌خاطر سپردن دارد. گره‌ای که یک ساعت پیش دوباره راه‌اندازی شده می‌تواند اکنون کاملاً سالم باشد، و مرتب‌سازی بر اساس بزرگ‌ترین عدد بی‌صدا آن را کنار می‌گذارد. زمان کارکرد امتیاز کیفیت نیست، و برخورد با آن به‌عنوان چنین امتیازی، سن را به جای تناسب برمی‌گزیند.

تازگی: گزارش از تلاش شما قدیمی‌تر است

فهرست‌های عمومی صفحه‌هایی هستند که از بررسی‌های دوره‌ای ساخته می‌شوند، نه سنجش زنده. زمان کارکردی که می‌خوانید در آخرین به‌روزرسانی محاسبه شده، و اتصالی که می‌آزمایید پس از آن رخ می‌دهد. در این فاصله، ارائه‌دهنده می‌تواند پیوندی را از کار بیندازد، گواهی را عوض کند، نشانی را جابه‌جا کند یا گره‌ای را از سرویس خارج کند، و صفحه تا خزش بعدی همچنان آخرین وضعیت خوب شناخته‌شده را گزارش می‌کند.

این شکاف در جهت دیگر هم کار می‌کند. گره‌ای که پایین گزارش شده ممکن است دقایقی پس از تولید گزارش بهبود یافته باشد، پس تلاش دوباره فوری روی گره‌ای دیگر همیشه انتخاب بهتر نیست.

قاعده عملی این است که هر فیلد گزارش‌شده ادعایی درباره گذشته است. از آن برای ساختن فهرستی کوتاه استفاده کنید و سپس با اندازه‌گیری‌ای که خودتان در لحظه‌ای که برایتان مهم است انجام می‌دهید، راستی‌آزمایی کنید.

به جای آن چه چیزی را بیازمایید

تصمیم بگیرید از گره چه می‌خواهید و همان را بیازمایید. اگر دسترس‌پذیری می‌خواهید، یک تلاش اتصال TCP به درگاه شنود در یک ثانیه بیشتر از هر شمارنده‌ای به شما می‌گوید. اگر تونلی کارآمد می‌خواهید، برای یکی مذاکره کنید. اگر توان عبوری قابل استفاده می‌خواهید، چیزی واقعی منتقل کنید و اندازه بگیرید، چون زمان اتصال و توان عبوری دو ویژگی متفاوت‌اند و یک دست‌دادن سریع چیزی درباره دومی نمی‌گوید.

nc -vz -w 5 vpn.example.net 1194
curl -sS -o /dev/null -w '%{time_connect} %{time_appconnect} %{time_total}\n' https://vpn.example.net/
mtr -rwc 20 vpn.example.net

به جای اعتماد به یک تلاش، آزمون را تکرار کنید. قابلیت اطمینان توزیعی در طول زمان و شرایط است و یک اتصال موفق نمونه‌ای با اندازه یک است. چند تلاش در ساعاتی که واقعاً از اتصال استفاده می‌کنید، هر زمان کارکرد منتشرشده‌ای را با اختلافی زیاد پشت سر می‌گذارد.

خواندن فهرست‌های عمومی گره‌ها بدون گمراه شدن

زمان کارکرد هیچ اطلاعاتی هم درباره چیزهایی که مردم معمولاً از VPN می‌خواهند ندارد: اعتبار گواهی، اینکه چه کسی خروجی را اداره می‌کند، چه سیاست DNS اعمال می‌شود، و اینکه آیا اپراتور سوابق اتصال را نگه می‌دارد. این‌ها ادعاهای جدایی هستند که شواهد جداگانه می‌خواهند، و شمارنده طولانی برای هیچ‌یک از آن‌ها شاهد نیست. گره می‌تواند ماه‌ها پایدار باشد و همچنان برای یک نیاز حریم خصوصی انتخاب بدی باشد.

جایی که فهرست واقعاً کمک می‌کند، کوتاه‌کردن فهرست است. بر اساس آنچه می‌دانید لازم دارید مرتب کنید، گره‌های مناطق نامرتبط با کار را کنار بگذارید، سپس سه یا چهار گره باقی‌مانده را بیازمایید. مرحله شکست هر تلاش را به جای یک بله یا خیر ساده نگه دارید، چون «دست‌دادن TLS شکست خورد» و «متصل شد اما توان عبوری ندارد» به نتایج کاملاً متفاوتی می‌رسند.

چارچوب سنجش کارایی مسیر همان نکته را به شکلی سخت‌گیرانه‌تر بیان می‌کند: پیش از گردآوری اعداد، سنجه، شرایط و روش را تعریف کنید. وقتی به فهرست گره‌ها اعمال شود، این یعنی فیلد زمان کارکرد زمینه است. اندازه‌گیری‌ای که خودتان انجام می‌دهید تصمیم است.

مقالات مرتبط