توسعه دهندگان Canonical منتشر شد از طریق لیست پستی توسعه هسته لینوکس ، مجموعه ای از وصله ها برای اجرای تمیز کردن حافظه فرصت طلب، که هدف آن به طور قابل توجهی زمان خواب را کاهش می دهد سیستم
بهينه سازي با فراخوانی فعالانه آزادسازی ساختارهای حافظه حاصل می شود کودکانی که حاوی اطلاعات منحصر به فردی نیستند و پس از بازگشت از حالت خواب می توانند به صورت پویا بازیابی شوند (به عنوان مثال ، مناطق حافظه ناشناس و حافظه پنهان چند صفحه حافظه).
درباره وصله ها
ایده اصلی این است که پس از حذف اطلاعات غیر ضروری ، اندازه تصویر حافظه کاهش می یابد نجات دادنقبل از رفتن به حالت خواب و در نتیجه زمان کمتری برای نوشتن و خواندن از یک رسانه آهسته مورد نیاز است.
پیش فرض ، هنگام ذخیره کردن تخلیه حافظه برای حالت خواب ، هسته حافظه را ذخیره می کند با همه حافظه پنهان چگونه استاما امکان انتشار استاندارد وجود دارد ساختارهای غیر ضروری شبیه سازی منابع کافی ناکافی در مرحله اولیه انتقال به حالت خواب.
این ویژگی با استفاده از پارامتر "/ sys / power / image_size" فعال می شود و منجر به کاهش محسوس زمان رفتن به حالت خواب می شود.
Canonical پیشنهاد می کند دو پارامتر دیگر اضافه کنید، که امکان آزادسازی ساختارهای غیر ضروری را از قبل فراهم می کند تا انتقال واقعی به حالت خواب در سریع ترین زمان ممکن انجام شود و بازگشت از حالت خواب تقریباً همان زمان استفاده از پارامتر را به خود اختصاص دهد.
آزمایشات و نتایج
آزمایش روی سیستمی با 8 گیگابایت رم و یک پارتیشن swap 8 گیگابایتی در حالی که از 85٪ حافظه استفاده می کنید در تنظیمات پیش فرض نشان داده شد (image_size = پیش فرض) کاهش زمان رفتن به حالت خواب 51.56 4.19 ثانیه ای که فرایند پاکسازی حافظه اضافی 60 ثانیه قبل از تغییر حالت خواب شروع شد.
به دلیل کاهش اندازه تصویر حافظه ذخیره شده ، زمان بازیابی از 26.34 به 5 ثانیه کاهش یافته است.
در اینجا اولین تلاش برای تهیه رابطی است که به کارهای فضای کاربر اجازه می دهد قبل از خواب زمستانی سیستم باعث بهبود حافظه فرصت طلب شوند.
یادآوری حافظه از قبل (به عنوان مثال ، هنگامی که سیستم بیکار است) اجازه می دهد
اندازه تصویر خواب زمستانی را کاهش دهید و به طور قابل توجهی سرعت خواب زمستانی را تسریع کرده و زمان از سرگیری را افزایش دهید.
وقتی حالت تمیز کردن عادی است برای حافظه اضافی (تصویر_ اندازه = 0) فعال شد در سیستم ، زمان رفتن به حالت خواب است از 73.22 به 5.36 ثانیه کاهش یافت و زمان بازگشت از حالت خواب تغییری نکرد (فقط با کسری از ثانیه ، از 5.32 به 5.26 ثانیه کاهش یافت).
مورد استفاده معمول برای این ویژگی این است که به موارد ابر با اولویت بالا اجازه دهید با خواب زمستانی از موارد با اولویت کم (مثلاً نمونه های نقطه ای [1]) پیشی بگیرند.
بازیابی حافظه فرصت طلبانه در مواردی که به مقدار زیادی حافظه اختصاص می یابد و بیشتر اوقات بیکار می ماند ، فقط در کمترین حالت خواب زمستانی ، بسیار مberثر است.
استفاده
روش پیشنهادی را می توان در شرایطی درخواست کرد که لازم است سریع به حالت خواب بروید و پیش بینی نیاز به چنین انتقالی را می توان از قبل انجام داد.
به عنوان مثال ، در سیستم های ابری ، محیط های مجازی با اولویت کم (محیط های نقطه ای در آمازون EC2) می توانند با رشد مصرف منابع اولیه ، به صورت پویا به خواب زمستانی رفته و حافظه اشغال شده را آزاد کنند.
وقتی بار کم می شود در تنظیمات اولیه ، محیط های دارای اولویت کم از حالت خواب برمی گردند. در این شرایط ، برای حفظ کیفیت کافی خدمات ، مهم است که زمان ورود و خروج به حالت خواب را به حداقل برسانید.
مرحله تمیز کردن پیشگیرانه می تواند با رسیدن به سطح مشخصی از بار اصلی که مقدم بر سطحی است که منجر به یخ زدن در محیط های دارای اولویت کم شود ، آغاز شود.
Fuente: https://lkml.org
اولین کسی باشید که نظر