Kernel shared memory

Ahn9807 (토론 | 기여)님의 2023년 2월 3일 (금) 06:56 판 (새 문서: 분류: 리눅스 커널 == 개요 == KSM (Kernel Shared memory)는 커널에서 중복되는 메모리를 하나로 COW로 만들어서, 통합시키는 기술의 이름이다. KSM기능은 CONFIG_KSM=y로 설정할 수 있으며, 리눅스 2.6.32에서 등장하였다. KSM는 시초에는 KVM과 하이퍼바이저로써, VM의 중복되는 데이터를 하나로 저장하기 위해서 등장하였지만, 많은 General Application특히 중복된 데이터를 많...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

KSM (Kernel Shared memory)는 커널에서 중복되는 메모리를 하나로 COW로 만들어서, 통합시키는 기술의 이름이다. KSM기능은 CONFIG_KSM=y로 설정할 수 있으며, 리눅스 2.6.32에서 등장하였다.

KSM는 시초에는 KVM과 하이퍼바이저로써, VM의 중복되는 데이터를 하나로 저장하기 위해서 등장하였지만, 많은 General Application특히 중복된 데이터를 많이 만들어 내는 Application과 유용하게 쓰일 수 있다. sysfs Inferface를 통해서, KSM이 한번에 scan하는 메모리의 크기와 같은 여러 파라미터를 조작할 수 있다.

madvise를 통해서도 KSM의 동작을 조절할 수 있다. MADV_MERGEABLE, MADV_UNMERGEABLE은 KSM이 선택된 영역에서 동작 여부를 조절한다. CONFIG_KSM=n으로 설정된 경우, EINVAL을 return한다.

참고

  1. https://www.kernel.org/doc/html/latest/admin-guide/mm/ksm.html