KSM

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 года.

Ссылки

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.