Mereka mencadangkan pengawal memori baru untuk kernel Linux

Kernel Linux

Pengurus memori adalah sebahagian daripada sistem beroperasi Ia berkongsi memori antara sistem operasi dan pelbagai aplikasi. Istilah memori merujuk terutamanya kepada memori utama (RAM), tetapi pengurusannya memerlukan sumbangan memori tambahan dan memori cache.

Pengurus memori bertanggungjawab terutamanya untuk memperuntukkan memori untuk proses dengan berkesan, yang bermaksud bahawa anda mesti dapat menyenaraikan lokasi memori percuma yang tersedia, memperuntukkan memori yang diperlukan untuk proses baru, dan mendapatkan semula memori dari proses yang berakhir. Penghantar proses dalam kernel Linux adalah penghantar SLAB.

SLAB bergantung pada sistem blok dan cache yang mengoptimumkan permintaan memori. Pengurusan memori jenis ini mengurangkan pemecahan yang disebabkan oleh operasi peruntukan dan penempatan semula.

Peruntukan blok melibatkan pelaksanaan cache untuk jenis / ukuran objek tertentu yang mempunyai beberapa blok memori yang diperuntukkan sebelumnya yang dipotong menjadi kepingan ukuran tetap yang sesuai untuk objek tertentu.

SLAB menguruskan kepingan sehingga ketika kernel diminta untuk mengalokasikan memori ke suatu objek, Anda dapat memenuhi permintaan itu dengan alat ganti dari blok yang ada. SLAB mengekalkan memori yang diperuntukkan untuk digunakan semula, apabila peruntukan objek serupa berikutnya, dan dengan itu mengurangkan kos overhead yang berkaitan dengan inisialisasi objek.

Mereka berhasrat untuk menggantikan SLAB

Roman Gushchin, Seorang ahli pasukan kejuruteraan kernel Linux di Facebook, dia menemui apa yang dilihatnya sebagai "kelemahan serius" dalam pengurus / pengawal memori semasa. Dan rbaru-baru ini mencadangkan pengawal memori baru sekatan yang menjanjikan untuk meningkatkan penggunaan memori secara mendadak di antara beberapa "kumpulan" (atau kumpulan kawalan) dari memori.

Mengingat hal ini, penting untuk diperhatikan bahawa cgroups merujuk kepada ciri kernel Linux yang membolehkan membatasi, mengira dan mengasingkan penggunaan sumber daya sistem (pemproses, memori, penggunaan cakera, dll.) Dan istilah "halaman papak" dapat diasimilasikan dengan proses peruntukan memori oleh SLAB.

Menurut Gushchin:

"Sebab sebenar reka bentuk yang ada menyebabkan penggunaan SLAB rendah adalah mudah: Halaman papak digunakan secara eksklusif oleh kumpulan memori tunggal.

Sekiranya hanya ada beberapa peruntukan dari ukuran tertentu yang dibuat oleh cgroup atau jika ada beberapa objek aktif yang tersisa setelah cgroup telah dikeluarkan atau jika cgroup tersebut berisi aplikasi berulir tunggal yang tidak memperuntukkan kernel, tetapi melakukannya setiap kali di CPU baru: Dalam semua kes ini, penggunaan SLAB yang dihasilkan sangat rendah.

Sekiranya pengiraan kmem dilumpuhkan, kernel dapat menggunakan ruang kosong di halaman jubin untuk peruntukan lain «.

Gushchin berpendapat bahawa ini tidak menjadi masalah ketika pemacu kmem diperkenalkan sebagai ciri pilihan yang harus diaktifkan untuk setiap kumpulan memori.

Namun sekarang, pemacu kmem diaktifkan secara lalai untuk kumpulan v1 dan v2. Dan kerana sistem moden cenderung membuat sebilangan besar kumpulan c, penggunaan SLAB kurang berkesan.

Menurutnya, dengan berkongsi halaman paparan antara pelbagai kumpulan memori dan dengan menggunakan sistem yang dikerjakan semula di mana perakaunan dilakukan oleh objek dan bukan oleh halaman, seseorang akan mempunyai kernel linux pengawal memori yang dioptimumkan yang menawarkan tahap penggunaan yang jauh lebih efisien.

Patch yang dicadangkan oleh Gushchin mengandungi dua elemen separa bebas: subpage load API yang dapat digunakan pada masa akan datang untuk tujuan perakaunan dan mem_cgroup_ptr API.

Ujian dilakukan dengan alat kawalan baru kenangan Gushchin telah menunjukkan bahawa mungkin untuk mendapatkan antara 35% dan 42% lebih banyak memori di Linux di web front-end, pelayan DNS dan cache pangkalan data, dan banyak beban kerja lain.

Cadangan Gushchin kini berada di bawah panji "permintaan untuk memberi komen." Sekiranya diterima, ia dapat diintegrasikan ke dalam rilis kernel Linux 2020.

Fuente: https://lkml.org/


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.