← Documents Documentation/ABI/testing/sysfs-kernel-mm-ksm GitHub 원문 ↗

Linux 6.18.37 · ABI / testing

Kernel Samepage Merging sysfs ABI

KSM daemon의 scan·sharing counters, run mode·sleep interval, NUMA cross-node merge policy와 general profit를 설명합니다.

Source pathDocumentation/ABI/testing/sysfs-kernel-mm-ksm
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

Daemon controls and sharing counters

sysfs-kernel-mm-ksm:1-45

KSM daemon의 scan cadence, shared·sharing·unshared·volatile page counters와 disable/run/unmerge modes를 제공합니다.

NUMA policy and effectiveness

sysfs-kernel-mm-ksm:46-61

NUMA nodes 사이 merge 허용 여부와 KSM의 overall effectiveness를 나타내는 general profit를 제공합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 What: /sys/kernel/mm/ksm
2 Date: September 2009
3 KernelVersion: 2.6.32
4 Contact: Linux memory management mailing list <linux-mm@kvack.org>
5 Description: Interface for Kernel Samepage Merging (KSM)
6
7 What: /sys/kernel/mm/ksm/full_scans
8 What: /sys/kernel/mm/ksm/pages_shared
9 What: /sys/kernel/mm/ksm/pages_sharing
10 What: /sys/kernel/mm/ksm/pages_to_scan
11 What: /sys/kernel/mm/ksm/pages_unshared
12 What: /sys/kernel/mm/ksm/pages_volatile
13 What: /sys/kernel/mm/ksm/run
14 What: /sys/kernel/mm/ksm/sleep_millisecs
15 Date: September 2009
16 Contact: Linux memory management mailing list <linux-mm@kvack.org>
17 Description: Kernel Samepage Merging daemon sysfs interface
18
19 full_scans: how many times all mergeable areas have been
20 scanned.
21
22 pages_shared: how many shared pages are being used.
23
24 pages_sharing: how many more sites are sharing them i.e. how
25 much saved.
26
27 pages_to_scan: how many present pages to scan before ksmd goes
28 to sleep.
29
30 pages_unshared: how many pages unique but repeatedly checked
31 for merging.
32
33 pages_volatile: how many pages changing too fast to be placed
34 in a tree.
35
36 run: write 0 to disable ksm, read 0 while ksm is disabled.
37
38 - write 1 to run ksm, read 1 while ksm is running.
39 - write 2 to disable ksm and unmerge all its pages.
40
41 sleep_millisecs: how many milliseconds ksm should sleep between
42 scans.
43
44 See Documentation/mm/ksm.rst for more information.
45
46 What: /sys/kernel/mm/ksm/merge_across_nodes
47 Date: January 2013
48 KernelVersion: 3.9
49 Contact: Linux memory management mailing list <linux-mm@kvack.org>
50 Description: Control merging pages across different NUMA nodes.
51
52 When it is set to 0 only pages from the same node are merged,
53 otherwise pages from all nodes can be merged together (default).
54
55 What: /sys/kernel/mm/ksm/general_profit
56 Date: April 2023
57 KernelVersion: 6.4
58 Contact: Linux memory management mailing list <linux-mm@kvack.org>
59 Description: Measure how effective KSM is.
60 general_profit: how effective is KSM. The formula for the
61 calculation is in Documentation/admin-guide/mm/ksm.rst.
62

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Kernel ksm

1-6
항목한국어 전문 번역
What/sys/kernel/mm/ksm
Date2009년 9월
KernelVersion2.6.32
ContactLinux memory management mailing list <linux-mm@kvack.org>
DescriptionKernel Samepage Merging(KSM) interface입니다.

Kernel full scans

7-45
항목한국어 전문 번역
What/sys/kernel/mm/ksm/full_scans
What 2/sys/kernel/mm/ksm/pages_shared
What 3/sys/kernel/mm/ksm/pages_sharing
What 4/sys/kernel/mm/ksm/pages_to_scan
What 5/sys/kernel/mm/ksm/pages_unshared
What 6/sys/kernel/mm/ksm/pages_volatile
What 7/sys/kernel/mm/ksm/run
What 8/sys/kernel/mm/ksm/sleep_millisecs
Date2009년 9월
ContactLinux memory management mailing list <linux-mm@kvack.org>
DescriptionKSM daemon sysfs interface입니다. `full_scans`는 모든 mergeable areas를 scan한 횟수, `pages_shared`는 사용 중인 shared pages 수, `pages_sharing`은 이 pages를 공유하는 추가 sites 수이자 절약량, `pages_to_scan`은 `ksmd`가 sleep하기 전 scan할 present pages 수입니다. `pages_unshared`는 unique하지만 merge 여부를 반복 검사한 pages, `pages_volatile`은 너무 빨리 변경되어 tree에 넣을 수 없는 pages 수입니다. `run`에 `0`을 쓰면 KSM을 disable하고 disabled 중 읽으면 `0`, `1`을 쓰면 run하고 running 중 읽으면 `1`, `2`를 쓰면 KSM을 disable하고 모든 pages를 unmerge합니다. `sleep_millisecs`는 scans 사이 KSM sleep milliseconds입니다. 자세한 내용은 `Documentation/mm/ksm.rst`를 참조합니다.
KSM scan and sharing counters
AttributeMeaning
full_scansComplete mergeable-area scans
pages_sharedShared pages in use
pages_sharingAdditional sharing sites and saved pages
pages_to_scanPresent pages before ksmd sleeps
pages_unsharedUnique pages repeatedly checked
pages_volatilePages changing too fast for the tree
sleep_millisecsMilliseconds between scans

Scan effort, sharing benefit과 merge 후보 상태를 함께 관찰합니다.

KSM run modes
ValueEffectReadback
0Disable KSM0 while disabled
1Run KSM1 while running
2Disable KSM and unmerge all pagesMode action

Run value가 daemon과 merged pages의 상태를 결정합니다.

Kernel merge across nodes

46-54
항목한국어 전문 번역
What/sys/kernel/mm/ksm/merge_across_nodes
Date2013년 1월
KernelVersion3.9
ContactLinux memory management mailing list <linux-mm@kvack.org>
Description서로 다른 NUMA nodes 사이의 page merging을 제어합니다. `0`이면 같은 node의 pages만 merge하며, 그 밖의 값이면 모든 nodes의 pages를 함께 merge합니다. 후자가 default입니다.

Kernel general profit

55-61
항목한국어 전문 번역
What/sys/kernel/mm/ksm/general_profit
Date2023년 4월
KernelVersion6.4
ContactLinux memory management mailing list <linux-mm@kvack.org>
DescriptionKSM의 effectiveness를 측정합니다. `general_profit` 계산 formula는 `Documentation/admin-guide/mm/ksm.rst`에 있습니다.