Canonical ir piedāvājis ielāpus, lai paātrinātu miega režīma aktivizēšanu

Kanonisks ieteikts Linux kodola izstrādātāju adresātu sarakstā ielāpu komplekts ar ieviešanu oportūnistiska atmiņas tīrīšana (“oportūnistiskās atmiņas atjaunošana”), kas ļauj ievērojami samazināt laiku, kas nepieciešams, lai pārietu miega režīmā. Optimizācija tiek panākta, proaktīvi izsaucot sekundāro atmiņas struktūru atbrīvošanas operāciju, kas nesatur unikālu informāciju un kuras var dinamiski atjaunot pēc atgriešanās no miega režīma (piemēram, apgabali anonīma atmiņa un dažādas atmiņas lapu kešatmiņas). Galvenā ideja ir tāda, ka pēc nevajadzīgo datu noņemšanas tiek samazināts atmiņas attēla lielums, kas jāsaglabā pirms pāriešanas miega režīmā, un attiecīgi mazāk laika ir nepieciešams tā rakstīšanai un lasīšanai no lēna datu nesēja.

Pēc noklusējuma, saglabājot atmiņas izgāztuvi hibernācijai, kodols saglabā atmiņu, kā tas ir ar visām kešatmiņām, taču pastāv standarta iespēja atbrīvot nevajadzīgas struktūras, simulējot resursu trūkuma apstākļus hibernācijas sākuma posmā. Šo funkciju var aktivizēt, izmantojot parametru “/sys/power/image_size”, un tas ievērojami samazina laiku, kas nepieciešams, lai pārietu miega režīmā. Canonical iesaka pievienot vēl divus parametrus “/sys/power/mm_reclaim/run” un
“/sys/power/mm_reclaim/release”, kas ļaus jau iepriekš aktivizēt nevajadzīgu struktūru atbrīvošanu, lai faktiskā pāreja uz miega režīmu tiktu veikta pēc iespējas ātrāk un atgriešanās no miega režīma aizņemtu apmēram tikpat daudz laika kā izmantojot esošu kodola parametrā "/sys/power/image_size".

Pārbaudot sistēmu ar 8 GB RAM un 8 GB mijmaiņas nodalījumu ar 85% atmiņas izmantošanu, noklusējuma iestatījumos (image_size=default) tika konstatēts, ka laiks, kas nepieciešams miega režīmā, ir samazinājies no 51.56 līdz 4.19 sekundēm, uzsākot procesu. liekās atmiņas dzēšana 60 sekundes pirms ieslēgšanas miega režīmā. Samazinot saglabātā atmiņas attēla izmēru, atkopšanas laiks samazinājās no 26.34 līdz 5 sekundēm. Kad sistēma ieslēdza standarta režīmu liekās atmiņas dzēšanai (image_size=0), laiks, lai pārietu miega režīmā, tika samazināts no 73.22 līdz 5.36 sekundēm, un laiks, lai atgrieztos no miega režīma, praktiski nemainījās (tas tika samazināts tikai par sekundes daļa, no 5.32 līdz 5.26 sekundēm).

Piedāvātā metode var būt pieprasīta situācijās, kad nepieciešams ļoti ātri pārslēgties uz miega režīmu un ir iespējams iepriekš paredzēt šādas pārejas nepieciešamību. Piemēram, mākoņsistēmās zemas prioritātes virtuālās vidēs (vietas vidē Amazon EC2) var dinamiski pārziemot un atbrīvot aizņemto atmiņu, jo palielinās resursu patēriņš primārajā vidē. Kad primārās vides slodze samazinās, zemas prioritātes vides atgriežas no miega režīma. Šādos apstākļos, lai uzturētu pareizu pakalpojuma kvalitāti, ir svarīgi samazināt laiku, kas nepieciešams miega režīma ieslēgšanai un izslēgšanai. Preventīvās tīrīšanas fāze var tikt aktivizēta, kad tiek sasniegts noteikts galvenās slodzes līmenis, kas ir pirms līmeņa, kas noved pie zemas prioritātes vides sasalšanas.

Avots: opennet.ru

Pievieno komentāru