KSM

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Kernel SamePage Merging»)
Перейти к: навигация, поиск

KSM (англ. kernel same-page merging, иногда трактуется как kernel shared memory) — технология ядра Linux, которая позволяет ядру объединять одинаковые страницы памяти между различными процессами или виртуальными гостевыми системами в одну для совместного использования; реализация дедупликации данных для оперативной памяти. Технология предусматривает сканирование памяти в целях поиска дубликатов страниц, каждая пара дубликатов объединяется в одну страницу, помечаемую как подлежащую копированию при записи, таким образом ядро будет автоматически разделять страницы памяти, как только один процесс изменит данные[1].

Впервые появилась в версии ядра 2.6.32[2]. На первых порах применения были опасения, что функция может быть использована в качестве уязвимости, в последующих выпусках обеспокоенность была учтена. Другой проблемой является то, что поиск дубликатов накладывает дополнительную нагрузку на процессорные ресурсы[1], поэтому в технологии была предусмотрена оценка — насколько часто будут те или иные страницы памяти изменяться, чтобы в тех случаях, когда ресурсные издержки сравнительно высоки не прибегать к слиянию страниц[3].

Наиболее широко применяется в системах виртуализации на базе ядра Linux, изначально — в KVM, впоследствии поддержана в Xen и Virtuozzo (в гипервизорах VMware, также построенных на базе ядра Linux, используется собственническая технология дедупликации страниц оперативной памяти). Вместе с техниками вытеснения неиспользуемой памяти, подкачки на стороне гипервизора и непосредственного сжатия, KSM обеспечивает системам виртуализации возможность перезакладки ресурсов оперативной памяти (англ. memory overcommitment); в условиях достаточно однородных экземпляров гостевых операционных систем возможен значительный эффект, в частности, экспериментальная реализация KSM от Red Hat показала, что 52 виртуальных экземпляра Windows XP с выделенными 1 ГБ памяти, могут работать на компьютере с 16 ГБ оперативной памяти[4].

Также установлена применимость и эффективность в определённых случаях вне рамок задач виртуализации[2][3].

Примечания[править | править вики-текст]

  1. 1 2 KSM tries again. lwn.net. kernel.org. Проверено 21 августа 2010. Архивировано 16 сентября 2012 года.
  2. 1 2 Anatomy of Linux Kernel Shared Memory. IBM DeveloperWorks. IBM. Проверено 21 августа 2010. Архивировано 16 сентября 2012 года.
  3. 1 2 Increasing memory density by using KSM. kernel.org. kernel.org. Проверено 21 августа 2010. Архивировано 16 сентября 2012 года.
  4. Kernel Samepage Merging (memory deduplication). kernelnewbies. kernelnewbies. Проверено 21 августа 2010. Архивировано 16 сентября 2012 года.

Ссылки[править | править вики-текст]