بهینهسازی نرمافزاری کلادفلر: کاهش ۱۰۰ ترابایتی مصرف RAM با Rust
۱.۱.۱.۱ حالا بهینهتر از همیشه است
کلادفلر با استفاده از پنج بهینهسازی نرمافزاری در زبان Rust، موفق به کاهش ۱۰۰ ترابایت مصرف حافظه RAM در شبکه DNS خود و افزایش سرعت پردازش شده است.
کلادفلربا یک بهینهسازی نرمافزاری چشمگیر موفق شده حدود ۱۰۰ ترابایت حافظه RAM را در شبکه DNS خود آزاد کند؛ بدون اینکه حتی یک سرور جدید اضافه یا ماژول حافظهای را از سختافزارهای موجود حذف کند.
به گزارش ایتنا به نقل از TechSpot،این تغییرات در پلتفرم Big Pineapple انجام شده؛ سامانهای که پشت سرویس محبوب 1.1.1.1 DNS و برخی دیگر از خدمات DNS کلادفلر قرار دارد.
مهندسان کلادفلر با اعمال پنج تغییر در کد Rust، اندازه معمول هر ورودی کش DNS را از ۹۵۳ بایت به ۴۲۰ بایت کاهش دادند. این کاهش بیش از ۵۰ درصدی در مقیاس زیرساخت کلادفلر تأثیر بسیار بزرگی دارد، زیرا Big Pineapple در هر لحظه بیش از ۲۵۰ میلیارد رکورد DNS را در خود نگه میدارد. در چنین مقیاسی، حتی حذف یک بایت از هر ورودی میتواند بیش از ۲۵۰ گیگابایت حافظه آزاد کند.
یکی از مهمترین تغییرات به نحوه استفاده از انواع داده Vec و String در Rust مربوط میشود. این ساختارها برای دادههایی طراحی شدهاند که ممکن است در آینده رشد کنند، اما رکوردهای DNS پس از ورود به کش معمولاً نیازی به افزایش اندازه ندارند. کلادفلر بنابراین آنها را با ساختارهای ثابت جایگزین کرد و بهتنهایی بیش از ۱۵ ترابایت RAM ذخیره شد.
مهندسان همچنین نحوه چیدمان پاسخهای DNS در حافظه را تغییر دادند. سه فهرست جداگانه رکوردها در یک بافر واحد قرار گرفتند و با Offsetهای دو بایتی مدیریت شدند. نامهایی که تکراری بودند نیز دیگر بهصورت کامل در کش ذخیره نمیشوند و هنگام ارسال پاسخ دوباره ساخته میشوند.
به گزارش ایتنا به نقل از TechSpot،این تغییرات در پلتفرم Big Pineapple انجام شده؛ سامانهای که پشت سرویس محبوب 1.1.1.1 DNS و برخی دیگر از خدمات DNS کلادفلر قرار دارد.
مهندسان کلادفلر با اعمال پنج تغییر در کد Rust، اندازه معمول هر ورودی کش DNS را از ۹۵۳ بایت به ۴۲۰ بایت کاهش دادند. این کاهش بیش از ۵۰ درصدی در مقیاس زیرساخت کلادفلر تأثیر بسیار بزرگی دارد، زیرا Big Pineapple در هر لحظه بیش از ۲۵۰ میلیارد رکورد DNS را در خود نگه میدارد. در چنین مقیاسی، حتی حذف یک بایت از هر ورودی میتواند بیش از ۲۵۰ گیگابایت حافظه آزاد کند.
یکی از مهمترین تغییرات به نحوه استفاده از انواع داده Vec و String در Rust مربوط میشود. این ساختارها برای دادههایی طراحی شدهاند که ممکن است در آینده رشد کنند، اما رکوردهای DNS پس از ورود به کش معمولاً نیازی به افزایش اندازه ندارند. کلادفلر بنابراین آنها را با ساختارهای ثابت جایگزین کرد و بهتنهایی بیش از ۱۵ ترابایت RAM ذخیره شد.
مهندسان همچنین نحوه چیدمان پاسخهای DNS در حافظه را تغییر دادند. سه فهرست جداگانه رکوردها در یک بافر واحد قرار گرفتند و با Offsetهای دو بایتی مدیریت شدند. نامهایی که تکراری بودند نیز دیگر بهصورت کامل در کش ذخیره نمیشوند و هنگام ارسال پاسخ دوباره ساخته میشوند.

تغییر دیگر، ذخیره اطلاعات رکوردها بهصورت داده خام با طول متغیر بود. این روش از هدررفت حافظه برای رکوردهای کوچک جلوگیری میکند؛ زیرا در طراحی قبلی، حتی یک رکورد ساده IPv4 با تنها چهار بایت داده، میتوانست فضای بسیار بیشتری اشغال کند.
این بهینهسازی علاوه بر کاهش مصرف RAM، سرعت سامانه را نیز افزایش داده است. نرخ درج رکوردها از ۶۲۵ هزار به ۸۹۳ هزار ورودی در ثانیه رسیده و تأخیر جستوجو نیز از ۸۲۸ به ۶۷۰ نانوثانیه کاهش یافته است.
کلادفلر اکنون قصد دارد حافظه آزادشده را برای ایجاد کشهای DNS بزرگتر استفاده کند. ذخیره رکوردهای بیشتر بهصورت محلی میتواند نرخ Cache Hit را افزایش دهد و تعداد درخواستها به سرورهای DNS authoritative را کاهش دهد. این پروژه نشان میدهد بهینهسازی نرمافزار میتواند در زیرساختهای عظیم، گاهی به اندازه ارتقای سختافزار ارزشمند باشد.
این بهینهسازی علاوه بر کاهش مصرف RAM، سرعت سامانه را نیز افزایش داده است. نرخ درج رکوردها از ۶۲۵ هزار به ۸۹۳ هزار ورودی در ثانیه رسیده و تأخیر جستوجو نیز از ۸۲۸ به ۶۷۰ نانوثانیه کاهش یافته است.
کلادفلر اکنون قصد دارد حافظه آزادشده را برای ایجاد کشهای DNS بزرگتر استفاده کند. ذخیره رکوردهای بیشتر بهصورت محلی میتواند نرخ Cache Hit را افزایش دهد و تعداد درخواستها به سرورهای DNS authoritative را کاهش دهد. این پروژه نشان میدهد بهینهسازی نرمافزار میتواند در زیرساختهای عظیم، گاهی به اندازه ارتقای سختافزار ارزشمند باشد.
بـرچـسب هـا:
اخبار مرتبط:
- مدیرعامل کلادفلر: نقصهای امنیتی پیاچپی آغاز موج جدید حملات سایبری
- اپل برچسب جدیدی برای نرمافزارهای سازگار با آیفون دوو معرفی میکند
- هشدار مدیرعامل دل درباره تداوم کمبود حافظه RAM تا سال ۲۰۳۰
- بهروزرسانی بزرگ بازی Rust: شیر خام و سوخت گوشت فاسد به بازی اضافه شدند
- بهروزرسانی جدید Rust: حیوانات اهلی و فرآوردههای آنها به بازی اضافه شدند
- دادگاه بخش عمده شکایت الک بالدوین علیه دادستانهای پرونده «Rust» را رد کرد
- آمادگی برای رقابت ۲ میلیاردی FC26: اتصال اینترنت کلید موفقیت
- بهروزرسانی جدید بازی Rust: تجربهای آرامشبخش با کشاورزی و دامداری
- یک کاربر Reddit میگوید 10 هزار دلار رم در گاراژش پیدا کرده است!
- بهروزرسانی جدید Rust با نام Force Wipe شامل تغییرات اساسی در بازی میشود
شمـا اولیـن نفـر هستـید کـه نظـر خـود را ثبـت مـی کنیـد.
🗩ثبـت نظر: