Архив метки: qemu

Экономия оперативной памяти с KSM

KSM (Kernel SamePage Merging, также: Kernel Shared Memory, Memory Merging) — технология ядра, позволяющая объединять одинаковые страницы памяти между различными процессами в одну для совместного использования. Эта возможность позволяет снизить общее использование памяти виртуальными гостевыми системами при использовании KVM. Модуль ядра ksmd запускает сканирование памяти с заданным интервалом времени (настройка sleep_millisecs). Идентичные блоки объединяются в одну, а освободившиеся дубликаты удаляются. При этом, общая на несколько процессов страница помечается флагом «copy-on-write» и будет разделена ядром при следующем изменении каким либо из процессов. KSM поддерживается ядром Linux, начиная с версии 2.6.32, и доступно в QEMU с версии 0.12.

К плюсам данной технологии относится выделение превышающих физическое значение ресурсов памяти без использования файлов подкачки. Например, можно раздать 52 раза по 1GB виртуальным машинам с одинаковой Windows XP на борту и занять при этом физически всего 16GB реальной памяти хоста (эксперименты Red Hat). Из минусов — расходуется процессорное время, поэтому на машинах со слабым CPU включение KSM может больше навредить.

Читать далее