چرا دو آزمون سرعت VPN روی یک تونل با هم نمیخوانند
خروج جدید سرور آزمون را عوض میکند و شروع کند امتیاز را. مقصد را ثابت کنید، تعداد جریانها را همسان کنید و هزینه پردازنده را از ظرفیت پیوند جدا کنید.
دو اجرا، یک تونل، و اعداد سه برابر تفاوت دارند. تونل میان آن دو تغییر نکرد. چیزی که تغییر کرد اندازهگیری است: سایتی که سرور را بر پایه مکان ظاهری شما انتخاب میکند، تعداد جریانهایی که تعیین میکند یک شروع کند لوله را پر میکند یا شش تا، و مدتی که آنقدر کوتاه است که پیش از استفاده درست از مسیر تمام میشود. آزمونهای سرعت اشتباه نیستند، اما آنها به پرسشی تنگتر از آنچه مردم از آنها میپرسند پاسخ میدهند.
نشانی خروج تازه مقصد آزمون را عوض میکند
بیشتر سایتهای آزمون سرور سنجش را خودکار انتخاب میکنند و آن را تا حدی بر پایه اینکه اتصال شما از کجا به نظر میرسد میآید برمیگزینند. تونل را روشن کنید، کشور ظاهریتان عوض میشود، پس سرور برگزیده عوض میشود و مقایسه اکنون دو مسیر متفاوت به دو میزبان متفاوت را در بر میگیرد.
نتیجه بههیچوجه سنجش VPN نیست. سنجش مسیر شما به سروری است که خود برنگزیدهاید، و تفاوت دو اجرا میتواند زیر چیرگی همتاشدن همان سرور باشد نه کاری که تونل کرده است.
پیش از تغییر هر چیز دیگری مقصد را ثابت کنید. هر ابزار معتبری به شما اجازه میدهد سرور را آشکارا برگزینید، و وقتی چنین نمیکند صفحه نتیجه معمولاً نام سرور بهکاررفته را میآورد، که برای دیدن اینکه دو اجرا سنجشپذیر نیستند کافی است. پیش از اعتماد به انتخابش، تأیید کنید که سایت چه دید:
curl -sS https://ipinfo.io/json | grep -E '"ip"|"org"|"country"'
اگر کشور میان اجراها عوض شد، هر چیزی که آزمون پس از آن برگزید هم عوض شد. خروج مشاهدهشده را کنار هر نتیجه بنویسید و سردرگمی بیشتر جاها از میان میرود.
شروع کند پس از پایان بیشتر آزمونهای کوتاه تمام میشود
اتصال TCP با نرخ پیوند آغاز نمیشود. با پنجره ازدحام کوچکی شروع میشود، تقریباً در هر رفتوبرگشت آن را دوبرابر میکند و تنها پس از چند رفتوبرگشت به ظرفیت مسیر میرسد. آزمون دهثانیهای روی مسیری با تأخیر بالا میتواند بخش چشمگیری از عمرش را در آن بالارفتن بگذراند.
به همین دلیل تونلی با تأخیر بیشتر در آزمون کوتاه بدتر از آنچه سزاوار است امتیاز میگیرد، و به همین دلیل اجرای بلندتر اغلب بدون هیچ تغییری در پیکربندی عدد بالاتری گزارش میکند. چارچوب تواندهی RFC 6349 این را آشکارا بررسی میکند، و به همین دلیل سنجشهای جدی بهاندازه کافی طول میکشند تا به حالت پایدار برسند. اجرای پنجثانیهای روی مسیر ماهوارهای شتابدهنده را میسنجد، نه جاده را.
به جای اعتماد به یک عدد، به مرحلههای اتصال نگاه کنید. Curl هر مرحله را جداگانه گزارش میکند، پس میبینید که زمان به دستدادن، به بالارفتن یا به انتقال میرود:
curl -sS -o /dev/null -w 'dns=%{time_namelookup} tcp=%{time_connect} tls=%{time_appconnect} total=%{time_total} bytes/s=%{speed_download}\n' \
https://mirror.example.net/testfile.bin
آن را دو بار پشت سر هم به همان مقصد اجرا کنید. اگر اجرای دوم بسیار سریعتر است، بالارفتن را میسنجیدید نه مسیر را، و هر مقایسهای که تنها از اجرای نخست استفاده کرده مشکوک است.
یک جریان و شش جریان چیزهای متفاوتی را میسنجند
یک جریان TCP با پنجرهای که میتواند در پرواز نگه دارد محدود میشود، که تقریباً زمان رفتوبرگشت ضرب در نرخ است. روی مسیر بلند آن حاصلضرب از آنچه یک جریان به کار میبرد فراتر میرود، پس یک بارگیری ظرفیت موجود را کمتر از واقع نشان میدهد. شش جریان موازی این شکاف را پر میکنند و عدد بزرگتری میدهند.
iperf3 -c speed.example.net -t 20
iperf3 -c speed.example.net -t 20 -P 6
mtr -rwc 50 speed.example.net
هر دو عدد درستاند. عدد یکجریانه میگوید یک بارگیری چه خواهد کرد، که معمولاً همان چیزی است که یک زبانه مرورگر میگیرد. عدد موازی میگوید مسیر در مجموع چه میتواند حمل کند، که یک تورنت یا بارگیری چندبخشی میتواند به کار ببرد. نقل یکی بهجای دیگری همان راهی است که یک تونل سالم بیدلیل عوض میشود.
مقایسه یک نتیجه موازی با نتیجه یک جریان رایجترین راهی است که مردم نتیجه میگیرند VPN سرعتشان را نصف کرده است. روش را همسان کنید و سپس مقایسه. ردپای دستور سوم زمینه گمشده را میافزاید: مسیری با لرزش بالا در هر دو حالت نتیجههای ناپایدار میدهد و هیچ تعداد جریانی آن را درست نمیکند.
رمزنگاری زمان پردازنده میگیرد، کپسولهسازی بایت میگیرد
دو سازوکار روی هر بسته اجرا میشوند، هر قدر هم پیوند سریع باشد. رمزنگاری بهازای هر بایت پردازنده مصرف میکند و کپسولهسازی بایتهای سرآیند میافزاید که پیوند باید آنها را هم حمل کند. هر دو بهشکل سقف پدیدار میشوند و نشانههایشان متفاوت است.
سقف پردازنده بهشکل فلات پدیدار میشود: تواندهی هر قدر جریان بیفزایید بالا نمیرود و پردازنده دستگاه مشغول است در حالی که پیوند نیست. روی یک روتر کوچک یا گوشی این اغلب همان حد واقعی است، و به همین دلیل یک خط سریع میتواند تونلی فروتن بدهد.
هزینه بایتی کوچکتر اما ثابت است. سرآیندهای اضافی یعنی بار مفید کمتر در هر بسته، و روی مسیری با واحد انتقال بیشینه ثابت میتوانند قطعهبندی یا چاه سیاه هم پدید آورند که در انتقالهای بزرگ بهشکل توقف دیده میشود نه میانگین کند.
| Observation | Likely mechanism | What to measure |
|---|---|---|
| Throughput flat as streams increase | CPU per packet on one core | Per-core utilisation during the test |
| Fast small transfers, stalled large ones | MTU and fragmentation | Payload size at which it breaks |
| Good average, unusable calls | Queueing delay behind a full buffer | Latency under load |
این سه اغلب با هم اشتباه میشوند چون کاربران هر سه را «VPN کند است» توصیف میکنند. تنها اولی به دستگاه بزرگتر پاسخ میدهد، تنها دومی به MTU کوچکتر پاسخ میدهد و تنها سومی به مدیریت صف پاسخ میدهد.
روش را در پرونده بنویسید
نتیجهای که ارزش نگه داشتن دارد دستگاه، شبکه دسترسی، خروج، سرور سنجش، جهت، تعداد جریان و مدت را نام میبرد. بدون آنها دو عدد سنجشپذیر نیستند، و تیکتی که یک عدد دارد در واقع یک حالوهواست.
اجراهای بد را هم نگه دارید. مجموعهای که در آن یک خروج هر بار توقف پدید میآورد بسیار آگاهیبخشتر از یک میانگین است، و توقفها همان چیزی هستند که میانگینها پنهان میکنند.
سپس چیزی را بیازمایید که واقعاً برایتان مهم است. اگر هدف بارگیری بزرگ است، فایل را بارگیری کنید. اگر هدف یک تماس است، تأخیر زیر بار را بسنجید نه تواندهی بیکار را، چون تونل میتواند در آزمون سرعت امتیاز خوبی بگیرد و باز هم هر جلسه را ناشنیدنی کند.