Canonical telah mencadangkan patch untuk mempercepatkan pengaktifan mod tidur

Syarikat Canonical dicadangkan pada senarai mel pembangun kernel Linux satu set patch dengan pelaksanaan pembersihan ingatan oportunistik ("tuntutan semula ingatan oportunistik"), yang membolehkan anda mengurangkan dengan ketara masa yang diperlukan untuk memasuki mod tidur. Pengoptimuman dicapai dengan secara proaktif memanggil operasi pelepasan struktur memori sekunder yang tidak mengandungi maklumat unik dan boleh dipulihkan secara dinamik selepas kembali daripada mod tidur (contohnya, kawasan ingatan tanpa nama dan pelbagai cache halaman memori). Idea utama ialah selepas mengalih keluar data yang tidak diperlukan, saiz imej memori yang akan disimpan sebelum masuk ke mod tidur dikurangkan dan, dengan itu, lebih sedikit masa diperlukan untuk menulis dan membacanya daripada media perlahan.

Secara lalai, apabila menyimpan longgokan memori untuk hibernasi, kernel menyimpan memori seperti dengan semua cache, tetapi terdapat keupayaan standard untuk membebaskan struktur yang tidak diperlukan dengan mensimulasikan keadaan kekurangan sumber pada peringkat awal memasuki hibernasi. Ciri ini boleh diaktifkan menggunakan parameter "/sys/power/image_size" dan membawa kepada pengurangan ketara dalam masa yang diambil untuk memasuki mod tidur. Canonical mencadangkan menambah dua lagi parameter "/sys/power/mm_reclaim/run" dan
"/sys/power/mm_reclaim/release", yang akan membolehkan anda mencetuskan pelepasan struktur yang tidak diperlukan terlebih dahulu supaya peralihan sebenar kepada mod tidur dilakukan secepat mungkin, dan kembali daripada mod tidur mengambil masa yang sama seperti apabila menggunakan yang sedia ada dalam parameter kernel "/sys/power/image_size".

Ujian pada sistem dengan 8 GB RAM dan 8 GB partition swap dengan 85% penggunaan memori menunjukkan dalam tetapan lalai (image_size=default) pengurangan masa untuk memasuki mod tidur daripada 51.56 kepada 4.19 saat apabila memulakan proses membersihkan memori berlebihan 60 saat sebelum memasuki mod tidur. mod tidur. Dengan mengurangkan saiz imej memori yang disimpan, masa pemulihan berkurangan daripada 26.34 kepada 5 saat. Apabila sistem menghidupkan mod standard untuk mengosongkan memori berlebihan (image_size=0), masa untuk memasuki mod tidur dikurangkan daripada 73.22 kepada 5.36 saat, dan masa untuk kembali daripada mod tidur kekal hampir tidak berubah (ia dikurangkan hanya dengan pecahan sesaat, dari 5.32 hingga 5.26 saat).

Kaedah yang dicadangkan mungkin dalam permintaan dalam situasi di mana perlu untuk menukar mod tidur dengan cepat dan adalah mungkin untuk meramalkan keperluan untuk peralihan sedemikian terlebih dahulu. Contohnya, dalam sistem awan, persekitaran maya keutamaan rendah (persekitaran tempat dalam Amazon EC2) boleh hibernate secara dinamik dan melepaskan memori yang diduduki apabila penggunaan sumber oleh persekitaran utama meningkat. Apabila beban pada persekitaran utama berkurangan, persekitaran keutamaan rendah kembali daripada mod tidur. Di bawah syarat ini, untuk mengekalkan kualiti perkhidmatan yang betul, adalah penting untuk meminimumkan masa yang diperlukan untuk masuk dan keluar dari mod tidur. Fasa pembersihan awalan boleh dicetuskan apabila tahap tertentu beban utama dicapai, sebelum tahap yang membawa kepada pembekuan persekitaran keutamaan rendah.

Sumber: opennet.ru

Tambah komen