فاماسرور
فناوری

یک درس بزرگ از Cloudflare: گاهی بهینه‌سازی نرم‌افزار از خرید سرور بهتر است

یک درس بزرگ از Cloudflare: گاهی بهینه‌سازی نرم‌افزار از خرید سرور بهتر است

کلادفلر با یک بهینه‌سازی نرم‌افزاری چشمگیر موفق شده حدود ۱۰۰ ترابایت حافظه RAM را در شبکه DNS خود آزاد کند؛ بدون اینکه حتی یک سرور جدید اضافه یا ماژول حافظه‌ای را از سخت‌افزارهای موجود حذف کند.

به گزارش دیتاسنتر من به نقل از TechSpot، این تغییرات در پلتفرم Big Pineapple انجام شده؛ سامانه‌ای که پشت سرویس محبوب 1.1.1.1 DNS و برخی دیگر از خدمات DNS کلادفلر قرار دارد.

مهندسان کلادفلر با اعمال پنج تغییر در کد Rust، اندازه معمول هر ورودی کش DNS را از ۹۵۳ بایت به ۴۲۰ بایت کاهش دادند. این کاهش بیش از ۵۰ درصدی در مقیاس زیرساخت کلادفلر تأثیر بسیار بزرگی دارد، زیرا Big Pineapple در هر لحظه بیش از ۲۵۰ میلیارد رکورد DNS را در خود نگه می‌دارد. در چنین مقیاسی، حتی حذف یک بایت از هر ورودی می‌تواند بیش از ۲۵۰ گیگابایت حافظه آزاد کند.

یکی از مهم‌ترین تغییرات به نحوه استفاده از انواع داده Vec و String در Rust مربوط می‌شود. این ساختارها برای داده‌هایی طراحی شده‌اند که ممکن است در آینده رشد کنند، اما رکوردهای DNS پس از ورود به کش معمولاً نیازی به افزایش اندازه ندارند. کلادفلر بنابراین آنها را با ساختارهای ثابت جایگزین کرد و به‌تنهایی بیش از ۱۵ ترابایت RAM ذخیره شد.

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

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

این بهینه‌سازی علاوه بر کاهش مصرف RAM، سرعت سامانه را نیز افزایش داده است. نرخ درج رکوردها از ۶۲۵ هزار به ۸۹۳ هزار ورودی در ثانیه رسیده و تأخیر جست‌وجو نیز از ۸۲۸ به ۶۷۰ نانوثانیه کاهش یافته است.

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

مجله خبری mydtc

نمایش بیشتر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا