روش جدید مدیریت حافظه فیس بوک

یکی از اعضای تیم توسعه شبکه های اجتماعی فیس بوک, رومن گوشچین، در لیست پستی توسعه دهنده مجموعه ای از پیشنهاد شده است وصله های هسته لینوکسبا هدف بهبود مدیریت حافظه از طریق اجرای یک کنترلر مدیریت حافظه جدید - اسلب (کنترل کننده حافظه اسلب).

توزیع اسلب یک مکانیسم مدیریت حافظه است که برای تخصیص کارآمدتر حافظه و حذف تکه تکه شدن قابل توجه طراحی شده است. اساس این الگوریتم ذخیره حافظه تخصیص یافته حاوی یک شی از یک نوع خاص و استفاده مجدد از آن حافظه دفعه بعد که برای یک شی از همان نوع تخصیص داده می شود، است. این تکنیک اولین بار در SunOS توسط Jeff Bonwick معرفی شد و اکنون به طور گسترده در هسته بسیاری از سیستم عامل های یونیکس از جمله FreeBSD و Linux استفاده می شود.

کنترلر جدید مبتنی بر انتقال حسابداری اسلب از سطح صفحه حافظه به سطح شی هسته است، که امکان اشتراک گذاری یک صفحه اسلب را در گروه های مختلف به جای اختصاص یک کش جداگانه برای هر cgroup فراهم می کند.

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

کنترلر جدید چندین ماه است که روی سرورهای تولیدی فیس بوک آزمایش شده است و تاکنون می توان این آزمایش را موفقیت آمیز نامید: بدون افت عملکرد و افزایش تعداد خطاها، کاهش واضحی در مصرف حافظه مشاهده شده است - در برخی از آنها. سرورهای تا 1 گیگابایت این عدد کاملاً ذهنی است، به عنوان مثال، آزمایشات قبلی نتایج کمی کمتر نشان دادند:

  • 650-700 مگابایت در وب پیشانی
  • 750-800 مگابایت روی یک سرور با کش پایگاه داده
  • 700 مگابایت در سرور DNS

«هفته | هفته» صفحه نویسنده در GitHub


«هفته | هفته» نتایج آزمایش اولیه

منبع: linux.org.ru

اضافه کردن نظر