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

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

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

حسابداری منابع دقیق‌تر اجرا شده در کنترل‌کننده اسلب جدید از نظر تئوری باید CPU را بیشتر بارگذاری کند، اما در عمل تفاوت‌ها ناچیز است. به طور خاص، کنترل‌کننده اسلب جدید برای چندین ماه در سرورهای تولیدی فیس‌بوک که انواع مختلفی از حجم کار را مدیریت می‌کنند، استفاده شده است و هنوز هیچ رگرسیون قابل‌توجهی شناسایی نشده است. در عین حال، کاهش قابل توجهی در مصرف حافظه وجود دارد - در برخی از هاست ها امکان ذخیره تا 1 گیگابایت حافظه وجود داشت، اما این شاخص به شدت به ماهیت بار، اندازه کل RAM، تعداد پردازنده ها بستگی دارد. و ویژگی های کار با حافظه تست های قبلی نشان داد کاهش مصرف حافظه به میزان 650-700 مگابایت (42٪ از حافظه اسلب) در وب جلو، 750-800 مگابایت (35٪) در سرور با حافظه کش DBMS و 700 مگابایت (36٪) در سرور DNS.

منبع: opennet.ru

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