Kompania Canonical në listën e shpërndarjes për zhvilluesit e bërthamës Linux, ka një grup patches për implementimin («opportunistic memory reclaim»), që lejon të reduktohet ndjeshëm kohëzgjatja e kalimit në modalitetin e gjumit. Optimizimi arrihet përmes thirrjes proaktive të operacionit për çlirimin e strukturave sekondare të memories, të cilat nuk përmbajnë informacion unik dhe mund të rikuperohen dinamikisht pas rikthimit nga modaliteti i gjumit (p.sh., zone dhe cache të ndryshme të faqeve të memories). Ideja kryesore është që pas eliminimit të të dhënave të tepërta, përmasat e imazhit të memories për ruajtjen përpara kalimit në modalitetin e gjumit ulen dhe, për pasojë, kërkohet më pak kohë për ta shkruar dhe lexuar atë nga një mbajtës të ngadalshëm.
Kështu, kur bërthama ruan dumpin e memories për modalitetin e gjumit, përdefault ajo ruan memorien ashtu siç është, me të gjitha cache-t, por ekziston një mundësi standarde për t'u çliruar nga strukturat e tepërta përmes simulimit të kushteve të mungesës së burimeve në fazën fillestare të kalimit në modalitetin e gjumit. Kjo mundësi mund të aktivizohet me parametër «/sys/power/image_size» dhe ndihmon ndjeshëm në reduktimin e kohës së kalimit në modalitetin e gjumit. Canonical propozon që të shtohen edhe dy parametra të tjerë «/sys/power/mm_reclaim/run» dhe
«/sys/power/mm_reclaim/release», të cilat do të lejojnë thirrjen e çlirimit të strukturave të tepërta në mënyrë paraprake për të siguruar që kalimi në modalitetin e gjumit të realizohet sa më shpejt, dhe rikthimi nga modaliteti i gjumit të marrë praktikisht të njëjtën kohë si me përdorimin e parametrit ekzistues në bërthamë «/sys/power/image_size».
Testimi në një sistem me 8 GB RAM e 8 GB hapësirë exchange, gjatë shfrytëzimit të 85% të memories, tregoi se nën parametra standardë (image_size=default), koha e kalimit në modalitetin e gjumit u reduktua nga 51.56 në 4.19 sekonda duke iniciuar procesin e pastrimit të memories të tepërta 60 sekonda para kalimit në modalitetin e gjumit. Përmes reduktimit të madhësisë së imazhit të memories të ruajtur, koha e rikuperimit u ul nga 26.34 në 5 sekonda. Me aktivizimin e funksionit standard të pastrimit të memories së tepërt në sistem (image_size=0), koha e kalimit në modalitetin e gjumit u ul nga 73.22 në 5.36 sekonda, ndërsa koha e rikthimit nga modaliteti i gjumit praktikisht nuk ndryshoi (u ul vetëm për disa sekonda, nga 5.32 në 5.26 sekonda).
Metoda e propozuar mund të jetë e nevojshme në situata kur është e domosdoshme të kalosh shumë shpejt në modalitetin e gjumit dhe ka mundësi të parashikohet nevoja për një kalim të tillë. Për shembull, në sistemet në re, ambientet virtuale me prioritet të ulët ( në Amazon EC2) mund të kalojnë dinamikisht në modalitetin e gjumit dhe të çlirojnë memorien gjatë rritjes së përdorimit të burimeve nga ambientet primare. Pasi ngarkesa në ambientet primare të ulet, ambientet me prioritet të ulët kthehen nga modaliteti i gjumit. Në këto kushte, për ruajtjen e cilësisë së shërbimit, është e rëndësishme që koha e kalimit në modalitetin e gjumit dhe rikthimit nga ai të jetë sa më e shkurtër. Aktivizimi i fazës së pastrimit proaktiv mund të bëhet kur arrihet një nivel i caktuar ngarkese primare, përpara se të arrihet niveli që shkakton ngrirjen e ambientesh me prioritet të ulët.
Burimi: opennet.ru
