Группа исследователей из Нанкинского университета (Китай) представила проект Ultra KSM (UKSM), в рамках которого для ядра Linux создан менеджер памяти с поддержкой системы дедуплицирования данных. UKSM является расширенной альтернативной реализацией технологии KSM (Kernel SamePage Merging), созданной в рамках проекта KVM и позволяющей исключить дублирование данных в памяти через совместное использование одинаковых страниц памяти в разных виртуальных окружениях. UKSM позволяет автоматически выявлять дубликаты помещаемых в память данных и физически сохранять только одну копию, привязывая остальные копии через ссылки, используя структуры данных аналогичные KSM. В настоящее время проектом подготовлен набор патчей для ядра 3.4, а также сформированы готовые пакеты для Debian, Ubuntu и Fedora.

Наибольшей эффективности UKSM достигает при использовании в сочетании с системами виртуализации, позволяя экономить значительный объём памяти в ситуации запуска множества типовых гостевых окружений, ценой незначительного повышения нагрузки на CPU. В отличие от KSM, UKSM использует более быстрый и эффективный в плане снижения нагрузки на CPU алгоритм сканирования, производящий фоновое выявление и объединение областей памяти. Дубликаты могут объединяться не только для виртуальных машин (UKSM не привязан к KVM), но и для любых пользовательских процессов и системных данных, что является важным отличием от KSM и похожего проекта Xen Dedup, привязанных к системам виртуализации. Все операции UKSM производятся в прозрачном режиме и не заметны для пользователей и компонентов системы.

Особенности UKSM:

  • Сканирование дубликатов для всей системы - UKSM автоматически сканирует содержимое всей памяти, используемой для маппинга пользовательских процессов, что позволяет обеспечить дедупликацию данных стандартных пользовательских процессов, без модификации кода приложений. Для работы дедупликации требуется только установить специальный патч к ядру Linux, при желании можно осуществить тонкую настройку параметров UKSM через sysfs;
  • Минимальное влияние на производительность. Сканирование ведётся в фоновом режиме, используя моменты простоя процессора, учитывая характер избыточности данных. Для областей в которых выявлено небольшое число избыточных данных проверка ведётся с минимальной интенсивностью, а для областей в которых выявлено много дубликатов выделяется больше ресурсов.
  • Эффективный алгоритм выявления избыточных данных. При тестировании системы на базе Intel core 2 Q9300 CPU, KSM показал пиковую производительность слияния областей памяти на уровне 260 Mб/сек, в то время как средняя производительность была значительно ниже. На той же системе UKSM, использующий иной метод хэширования, позволил достигнуть производительности от 477 до 923 Мб/сек для областей с наличием дубликатов и до 2445 Мб/сек для областей не содержащих избыточных данных.
  • Избегание проверки часто меняющихся областей памяти - в процессе сканирования UKSM учитывает непостоянные области, в которых производится активное изменение данных, и пропускает их чтобы не тратить время зря.


Источник: http://www.opennet.ru/opennews/art.shtml?num=34240