|

Объединение одинаковых данных страниц оперативной памяти, сжатых модулем ядра Linux

Авторы: Романов А.В.
Опубликовано в выпуске: #7(84)/2023
DOI: 10.18698/2541-8009-2023-7-923


Раздел: Информатика, вычислительная техника и управление | Рубрика: Системный анализ, управление и обработка информации, статистика

Ключевые слова: операционные системы, ядро Linux, управление памятью, zram, сжатие данных, дедупликация данных, алгоритмы, структуры данных, блочные устройства, zsmalloc

Опубликовано: 31.07.2023

Статья посвящена оптимизациям в подсистеме управления памяти в ядре Linux. Кратко описаны главные концепции управления памятью в ядре Linux. Описаны структуры данных и алгоритм работы модуля ядра zram, отвечающего за сжатие страниц оперативной памяти. Разработан алгоритм объединения страниц оперативной памяти, содержащих одинаковые данные, которые предварительно были сжаты соответствующим модулем ядра Linux. Проведен анализ результатов работы разработанного алгоритма на различных архитектурах процессора и на разных входных данных. По результатам исследования сделан вывод о неэффективности разработанного метода на системах с малым количеством одинаковых данных (дублирующие данные составляют не более 1 % всей памяти системы) и, наоборот, об увеличении скорости работы и уменьшении расходования оперативной памяти модуля ядра zram для систем, содержащих повторяющиеся данные в умеренном количестве (дублирующие данные составляют не менее 25 % всей памяти системы).


Литература

[1] Khalid Sayood. Introduction to Data Compression. Amsterdam, Morgan Kaufmann, 2001, 680 p.

[2] Dan Feng. Overview of the Data Deduplication. Data Deduplcation of High Performance Storage System, 2022, pp. 9–23. http://doi.org/10.1007/978-981-19-0112-6_2

[3] Бовет Д., Чезати М. Ядро Linux. Санкт-Петербург, БХВ-Петербург, 2007, 217 с. /Bovet D.P., Cesati M. Understanding the Linux Kernel. USA, O’Reilly Media, 2006, 944 p.

[4] Лове Р. Ядро Linux. Описание процесса разработки. Москва, Вильямс, 2013, 155 с. / Love R. Linux Kernel Development. NJ, Addison-Wesley, 2010, 468 p.

[5] Таненбаум Э., Бос Х. Современные операционные системы. Санкт-Петербург, Питер, 2015, 845 с. / Tanenbaum A.S., Bos H. Modern Operating Systems. Pearson Education, 2015, 1138 p.

[6] zram: Compressed RAM-based block devices. URL: https://docs.kernel.org/admin-guide/blockdev/zram.html (accessed April 15, 2023).

[7] zsmalloc. URL: https://docs.kernel.org/mm/zsmalloc.html (accessed April 15, 2023).

[8] Бабенко М.А., Левин М.В. Введение в теорию алгоритмов и структур данных. Москва, МЦНМО, 2016, 47 с.

[9] Romanov A. zram: introduce merge identical pages mechanism. URL: https://lore.kernel.org/all/20221121190020.66548-1-avromanov@sberdevices.ru/ (accessed April 15, 2023).