بازگشت به وبلاگ Webship

مهندسی Webship

Webship 1.3.1: ظرفیت بالاتر HTTP/2 و معکوس-پراکسی

Webship 1.3.1 ظرفیت h2c مستقیم را ۳۴.۱۹٪، TLS مستقیم HTTP/2 را ۲۶.۶۷٪ و H1 پروکسی معکوس را ۱۵.۱۰٪ نسبت به 1.2.0 افزایش می‌دهد، در حالی که پایداری و صحت حمل‌ونقل را تقویت می‌کند.

Webship 1.3.1 دو چرخه انتشار از پروفایل‌بندی انتقال، مستحکم‌سازی پروتکل و کار پایدار را به افزایش ظرفیت قابل اندازه‌گیری تبدیل می‌کند. روی همان میزبان بنچمارک دبیان، هشت مورد از ده بار کاری درخواست مستقیم و پروکسی معکوس قابل مقایسه سریع‌تر از Webship 1.2.0 هستند.

بزرگ‌ترین تغییرات در HTTP/2 مشاهده می‌شود: درخواست‌های مستقیم h2c از 1,003,468 به 1,346,548 درخواست در ثانیه افزایش می‌یابد، در حالی که TLS مستقیم HTTP/2 از 884,857 به 1,120,872 درخواست در ثانیه افزایش می‌یابد. ظرفیت reverse-proxy نیز در هر پروتکل اندازه‌گیری شده‌ای بهبود یافته است.

Webship 1.3.1 در مقایسه با 1.2.0

جدول زیر ظرفیت درخواست سرور-محلی میانه را مقایسه می‌کند. مقدار بالاتر بهتر است.

| بار کاری مستقیم | Webship 1.2.0 | Webship 1.3.1 | تغییر | | --- | ---: | ---: | ---: | | HTTP/1.1 | ۴۱۴,۱۹۵ RPS | ۴۱۴,۰۶۰ RPS | -۰.۰۳٪ | | HTTP/1.1 TLS | 303,788 درخواست در ثانیه | 312,439 درخواست در ثانیه | +2.85% | | h2c | ۱,۰۰۳,۴۶۸ درخواست در ثانیه | ۱,۳۴۶,۵۴۸ درخواست در ثانیه | +۳۴.۱۹٪ | | HTTP/2 TLS | ۸۸۴,۸۵۷ درخواست در ثانیه | ۱,۱۲۰,۸۷۲ درخواست در ثانیه | +۲۶.۶۷٪ | | HTTP/3 TLS | ۴۰۹,۵۱۴ درخواست در ثانیه | ۴۰۰,۱۸۷ درخواست در ثانیه | -۲.۲۸٪ |

| پروکسی معکوس با خاتمه TLS | Webship 1.2.0 | Webship 1.3.1 | تغییر | | --- | ---: | ---: | ---: | | HTTP/1.1 | 165,160 RPS | 190,102 RPS | +۱۵.۱۰٪ | | HTTP/1.1 TLS | 118,681 درخواست در ثانیه | 123,344 درخواست در ثانیه | +3.93% | | h2c | 122,371 عملیات در ثانیه | 135,499 عملیات در ثانیه | +10.73% | | HTTP/2 TLS | ۱۱۳,۹۱۹ RPS | ۱۲۴,۹۵۷ RPS | +۹.۶۹٪ | | HTTP/3 TLS | ۱۲۶,۴۰۷ درخواست در ثانیه | ۱۳۱,۵۲۹ درخواست در ثانیه | +۴.۰۵٪ |

پخش مستقیم HTTP/1.1 عملاً بدون تغییر است. TLS مستقیم HTTP/3 به میزان ۲.۲۸٪ کمتر از میانه ۱.۲.۰ است، بنابراین ما هر سلول را به عنوان یک پیشرفت نشان نمی‌دهیم. این نسخه واضح‌ترین بهبودهای خود را در HTTP/2 و ظرفیت معکوس پراکسی ارائه می‌دهد و همزمان سیاست پذیرش بدون خطای سختگیرانه را حفظ می‌کند.

سودها از کجا آمده‌اند

Webship 1.3.1 کار روی داغ‌ترین مسیرها را کاهش می‌دهد به جای اینکه پروتکل یا بررسی‌های امنیتی را تضعیف کند.

  • نسخه‌های محلی اتصال اجازه می‌دهند پاسخ‌های مکرر HTTP/1 و HTTP/2 از رقابت شمارش مرجع بافر بایت در سطح پردازش اجتناب کنند.
  • بلوک‌های HPACK مشترک اکنون شامل فیلدهای HTTP/2 پایدار در اتصال هستند که رمزگذاری مجدد سرصفحه را کاهش می‌دهند.
  • HTTP/2 خروجی صف‌بندی شده را قبل از تلاش برای خواندن دوباره سوکت پاک می‌کند و از پی‌گیری جریان بدون قفل بیشتری که متعلق به اتصال است استفاده می‌کند.
  • بسته‌های با سرصفحه کوتاه که توسط HTTP/3 ایجاد شده‌اند، از یک نسخه دریافت جلوگیری می‌کنند، در حالی که بسته‌های دست‌دهی، بافر ایمن مالکیت را حفظ می‌کنند.
  • TLS عبور مستقیم از بافرهای واسط محلی کارگر و یک تایمر بیکار مجدداً استفاده می‌کند به جای اینکه آن‌ها را برای هر چرخه واسط دوباره بسازد.
  • مسیرهای حمل و نقل نسخه منتشر شده دیگر زمانی که ابزارسازی غیرفعال است، محل‌های فراخوانی ردیابی را حمل نمی‌کنند.

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

ثبات بخشی از ظرفیت است

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

این نسخه همچنین شنوندگان را از طریق توصیف‌کننده گذرا، حافظه و فشار شبکه زنده نگه می‌دارد؛ انتظارهای فروپاشی کش را توسط ضرب‌الاجل درخواست محدود می‌کند؛ پاسخ‌های عبور TLS را پس از نیمه‌بستن حفظ می‌کند؛ و پذیرش، حسابداری، ایزولاسیون پانیک، و ترتیب رد شدن WebTransport را اصلاح می‌کند.

تایید صلاحیت TLS معکوس متمرکز HTTP/2 منجر به تولید یک میانگین ۱۲۴,۹۵۷ RPS با پراکندگی ۰.۸۹٪ و ضریب تغییر ۰.۳۳٪ شد. تایید صلاحیت مجدد HTTP/3 که پایان‌یافته و عبوری بود، هر کدام هفت نمونه پذیرفته‌شده را با بدنه‌های دقیق ۹۹,۹۴۳,۷۷۸ بایتی و بدون خطاهای مشتری، پروتکل یا از دست دادن بسته گذراندند.

WebTransport و پخش جریانی ۱۰۰ مگابایت

Webship 1.3.1 همچنین مسیرهای محلی سرور WebTransport و جریان‌سازی فایل‌های بزرگ را نیز پشتیبانی می‌کند:

  • مستقیم WebTransport: ۱٬۰۱۸٫۱ مگابایت بر ثانیه برای جریان‌های قابل اعتماد و ۱٬۰۳۸٫۹ مگابایت بر ثانیه برای داده‌گرام‌ها.
  • WebTransport از طریق عبور TLS: ۵۴۸.۶ مگابایت‌درثانیه برای جریان‌های قابل اعتماد و ۶۲۹.۷ مگابایت‌درثانیه برای دیتاگرام‌ها.
  • پخش مستقیم 100 مگابایت: 4,194.8 میبی‌بایت/ثانیه روی TLS HTTP/1.1، 3,574.3 میبی‌بایت/ثانیه روی TLS HTTP/2، و 2,096.9 میبی‌بایت/ثانیه روی TLS HTTP/3.
  • پخش از طریق پروکسی معکوس با خاتمه TLS: به ترتیب ۳۵۸۵.۷ میبی‌بایت/ثانیه، ۳۳۵۵.۰ میبی‌بایت/ثانیه، و ۱۹۳۸.۶ میبی‌بایت/ثانیه.

نسخه‌ای ساخته شده برای عملکرد قابل اندازه‌گیری

Webship 1.3.1 به صورت باینری‌های امضاشده برای اهداف پشتیبانی‌شده لینوکس، ویندوز، macOS و OpenHarmony در دسترس است. نسخه لینوکس x86_64 شامل پروفایل PGO سازگار و متادیتای منشأ آن می‌باشد.

متن کامل [روش‌شناسی بنچمارک و مقایسه فعلی](/benchmarks) را بخوانید، [مستندات ۱.۳.۱](/docs/1.3.1) را بررسی کنید، یا نسخه امضا شده را از [دانلودها](/downloads) دریافت کنید.

منابع و روش محتوا

این مقایسه از ماتریس دبیان ۱.۲.۰ Webship ثبت شده به تاریخ ۴ سپتامبر ۲۰۲۶ و بنچمارک ظرفیت یکپارچه دبیان ۱.۳.۱ Webship ثبت شده به تاریخ ۱۱ سپتامبر ۲۰۲۶ استفاده می‌کند. درصدها از میانه‌های ثبت شده محاسبه شده‌اند.