← Documents Documentation/ABI/stable/sysfs-devices-node GitHub 원문 ↗

Linux 6.18.37 · ABI / stable

NUMA node stable sysfs ABI

NUMA node mask, CPU와 memory 통계, distance, compaction, heterogeneous-memory access class, memory-side cache, memory failure와 proactive reclaim ABI를 설명합니다.

Source pathDocumentation/ABI/stable/sysfs-devices-node
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

System-wide node mask

sysfs-devices-node:1-30

possible·online node와 normal·high memory 또는 CPU를 가진 node를 bitmap 형식으로 구분합니다.

Node별 topology와 memory 통계

sysfs-devices-node:32-93

nodeX의 CPU affinity, memory usage, NUMA hit·miss, distance, zone 통계, compaction과 huge page control을 다룹니다.

Heterogeneous-memory access class

sysfs-devices-node:95-144

Memory initiator와 target 사이의 성능 등급 및 read·write bandwidth와 latency를 표현합니다.

Memory-side cache

sysfs-devices-node:146-184

Memory-side cache level의 indexing, line size, capacity, write policy와 address mode를 설명합니다.

SGX, memory failure와 reclaim

sysfs-devices-node:186-238

SGX physical memory, poisoned-page recovery 결과와 사용자가 시작하는 node 단위 proactive reclaim을 다룹니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 What: /sys/devices/system/node/possible
2 Date: October 2002
3 Contact: Linux Memory Management list <linux-mm@kvack.org>
4 Description:
5 Nodes that could be possibly become online at some point.
6
7 What: /sys/devices/system/node/online
8 Date: October 2002
9 Contact: Linux Memory Management list <linux-mm@kvack.org>
10 Description:
11 Nodes that are online.
12
13 What: /sys/devices/system/node/has_normal_memory
14 Date: October 2002
15 Contact: Linux Memory Management list <linux-mm@kvack.org>
16 Description:
17 Nodes that have regular memory.
18
19 What: /sys/devices/system/node/has_cpu
20 Date: October 2002
21 Contact: Linux Memory Management list <linux-mm@kvack.org>
22 Description:
23 Nodes that have one or more CPUs.
24
25 What: /sys/devices/system/node/has_high_memory
26 Date: October 2002
27 Contact: Linux Memory Management list <linux-mm@kvack.org>
28 Description:
29 Nodes that have regular or high memory.
30 Depends on CONFIG_HIGHMEM.
31
32 What: /sys/devices/system/node/nodeX
33 Date: October 2002
34 Contact: Linux Memory Management list <linux-mm@kvack.org>
35 Description:
36 When CONFIG_NUMA is enabled, this is a directory containing
37 information on node X such as what CPUs are local to the
38 node. Each file is detailed next.
39
40 What: /sys/devices/system/node/nodeX/cpumap
41 Date: October 2002
42 Contact: Linux Memory Management list <linux-mm@kvack.org>
43 Description:
44 The node's cpumap.
45
46 What: /sys/devices/system/node/nodeX/cpulist
47 Date: October 2002
48 Contact: Linux Memory Management list <linux-mm@kvack.org>
49 Description:
50 The CPUs associated to the node.
51
52 What: /sys/devices/system/node/nodeX/meminfo
53 Date: October 2002
54 Contact: Linux Memory Management list <linux-mm@kvack.org>
55 Description:
56 Provides information about the node's distribution and memory
57 utilization. Similar to /proc/meminfo, see Documentation/filesystems/proc.rst
58
59 What: /sys/devices/system/node/nodeX/numastat
60 Date: October 2002
61 Contact: Linux Memory Management list <linux-mm@kvack.org>
62 Description:
63 The node's hit/miss statistics, in units of pages.
64 See Documentation/admin-guide/numastat.rst
65
66 What: /sys/devices/system/node/nodeX/distance
67 Date: October 2002
68 Contact: Linux Memory Management list <linux-mm@kvack.org>
69 Description:
70 Distance between the node and all the other nodes
71 in the system.
72
73 What: /sys/devices/system/node/nodeX/vmstat
74 Date: October 2002
75 Contact: Linux Memory Management list <linux-mm@kvack.org>
76 Description:
77 The node's zoned virtual memory statistics.
78 This is a superset of numastat.
79
80 What: /sys/devices/system/node/nodeX/compact
81 Date: February 2010
82 Contact: Mel Gorman <mel@csn.ul.ie>
83 Description:
84 When this file is written to, all memory within that node
85 will be compacted. When it completes, memory will be freed
86 into blocks which have as many contiguous pages as possible
87
88 What: /sys/devices/system/node/nodeX/hugepages/hugepages-<size>/
89 Date: December 2009
90 Contact: Lee Schermerhorn <lee.schermerhorn@hp.com>
91 Description:
92 The node's huge page size control/query attributes.
93 See Documentation/admin-guide/mm/hugetlbpage.rst
94
95 What: /sys/devices/system/node/nodeX/accessY/
96 Date: December 2018
97 Contact: Keith Busch <keith.busch@intel.com>
98 Description:
99 The node's relationship to other nodes for access class "Y".
100
101 What: /sys/devices/system/node/nodeX/accessY/initiators/
102 Date: December 2018
103 Contact: Keith Busch <keith.busch@intel.com>
104 Description:
105 The directory containing symlinks to memory initiator
106 nodes that have class "Y" access to this target node's
107 memory. CPUs and other memory initiators in nodes not in
108 the list accessing this node's memory may have different
109 performance.
110
111 What: /sys/devices/system/node/nodeX/accessY/targets/
112 Date: December 2018
113 Contact: Keith Busch <keith.busch@intel.com>
114 Description:
115 The directory containing symlinks to memory targets that
116 this initiator node has class "Y" access.
117
118 What: /sys/devices/system/node/nodeX/accessY/initiators/read_bandwidth
119 Date: December 2018
120 Contact: Keith Busch <keith.busch@intel.com>
121 Description:
122 This node's read bandwidth in MB/s when accessed from
123 nodes found in this access class's linked initiators.
124
125 What: /sys/devices/system/node/nodeX/accessY/initiators/read_latency
126 Date: December 2018
127 Contact: Keith Busch <keith.busch@intel.com>
128 Description:
129 This node's read latency in nanoseconds when accessed
130 from nodes found in this access class's linked initiators.
131
132 What: /sys/devices/system/node/nodeX/accessY/initiators/write_bandwidth
133 Date: December 2018
134 Contact: Keith Busch <keith.busch@intel.com>
135 Description:
136 This node's write bandwidth in MB/s when accessed from
137 found in this access class's linked initiators.
138
139 What: /sys/devices/system/node/nodeX/accessY/initiators/write_latency
140 Date: December 2018
141 Contact: Keith Busch <keith.busch@intel.com>
142 Description:
143 This node's write latency in nanoseconds when access
144 from nodes found in this class's linked initiators.
145
146 What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/
147 Date: December 2018
148 Contact: Keith Busch <keith.busch@intel.com>
149 Description:
150 The directory containing attributes for the memory-side cache
151 level 'Y'.
152
153 What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/indexing
154 Date: December 2018
155 Contact: Keith Busch <keith.busch@intel.com>
156 Description:
157 The caches associativity indexing: 0 for direct mapped,
158 non-zero if indexed.
159
160 What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/line_size
161 Date: December 2018
162 Contact: Keith Busch <keith.busch@intel.com>
163 Description:
164 The number of bytes accessed from the next cache level on a
165 cache miss.
166
167 What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/size
168 Date: December 2018
169 Contact: Keith Busch <keith.busch@intel.com>
170 Description:
171 The size of this memory side cache in bytes.
172
173 What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/write_policy
174 Date: December 2018
175 Contact: Keith Busch <keith.busch@intel.com>
176 Description:
177 The cache write policy: 0 for write-back, 1 for write-through,
178 other or unknown.
179
180 What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/address_mode
181 Date: March 2025
182 Contact: Dave Jiang <dave.jiang@intel.com>
183 Description:
184 The address mode: 0 for reserved, 1 for extended-linear.
185
186 What: /sys/devices/system/node/nodeX/x86/sgx_total_bytes
187 Date: November 2021
188 Contact: Jarkko Sakkinen <jarkko@kernel.org>
189 Description:
190 The total amount of SGX physical memory in bytes.
191
192 What: /sys/devices/system/node/nodeX/memory_failure/total
193 Date: January 2023
194 Contact: Jiaqi Yan <jiaqiyan@google.com>
195 Description:
196 The total number of raw poisoned pages (pages containing
197 corrupted data due to memory errors) on a NUMA node.
198
199 What: /sys/devices/system/node/nodeX/memory_failure/ignored
200 Date: January 2023
201 Contact: Jiaqi Yan <jiaqiyan@google.com>
202 Description:
203 Of the raw poisoned pages on a NUMA node, how many pages are
204 ignored by memory error recovery attempt, usually because
205 support for this type of pages is unavailable, and kernel
206 gives up the recovery.
207
208 What: /sys/devices/system/node/nodeX/memory_failure/failed
209 Date: January 2023
210 Contact: Jiaqi Yan <jiaqiyan@google.com>
211 Description:
212 Of the raw poisoned pages on a NUMA node, how many pages are
213 failed by memory error recovery attempt. This usually means
214 a key recovery operation failed.
215
216 What: /sys/devices/system/node/nodeX/memory_failure/delayed
217 Date: January 2023
218 Contact: Jiaqi Yan <jiaqiyan@google.com>
219 Description:
220 Of the raw poisoned pages on a NUMA node, how many pages are
221 delayed by memory error recovery attempt. Delayed poisoned
222 pages usually will be retried by kernel.
223
224 What: /sys/devices/system/node/nodeX/memory_failure/recovered
225 Date: January 2023
226 Contact: Jiaqi Yan <jiaqiyan@google.com>
227 Description:
228 Of the raw poisoned pages on a NUMA node, how many pages are
229 recovered by memory error recovery attempt.
230
231 What: /sys/devices/system/node/nodeX/reclaim
232 Date: June 2025
233 Contact: Linux Memory Management list <linux-mm@kvack.org>
234 Description:
235 Perform user-triggered proactive reclaim on a NUMA node.
236 This interface is equivalent to the memcg variant.
237
238 See Documentation/admin-guide/cgroup-v2.rst
239

3. 한국어 전문 번역

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

System-wide node mask

1-30

이 절의 다섯 ABI는 2002년 10월에 도입됐고 Linux Memory Management 메일링 리스트 <linux-mm@kvack.org>가 담당한다. 출력은 CPU list와 같은 range 형식으로 읽는다. 예를 들어 0-2,4는 node 0, 1, 2, 4를 뜻한다.

경로의미
/sys/devices/system/node/possible향후 어느 시점에 online 상태가 될 가능성이 있는 node의 집합이다. 현재 활성 상태라는 뜻은 아니다.
/sys/devices/system/node/online현재 online 상태인 node의 집합이다.
/sys/devices/system/node/has_normal_memory일반 memory를 가진 node의 집합이다.
/sys/devices/system/node/has_cpu하나 이상의 CPU를 가진 node의 집합이다. Memory-only NUMA node는 이 목록에 없을 수 있다.
/sys/devices/system/node/has_high_memory일반 memory 또는 high memory를 가진 node의 집합이다. 이 파일은 CONFIG_HIGHMEM 설정에 의존한다.

Node directory, topology와 memory 통계

32-79
항목내용
도입일2002년 10월
담당Linux Memory Management list <linux-mm@kvack.org>

CONFIG_NUMA가 활성화되면 /sys/devices/system/node/nodeX는 node X에 속한 local CPU 등 해당 node의 정보를 담는 directory가 된다. 이 directory 아래의 각 파일은 다음과 같다.

경로설명
nodeX/cpumap이 node의 CPU bitmap이다. 긴 hexadecimal mask를 사용하는 인터페이스다.
nodeX/cpulist이 node와 연관된 CPU 번호를 list 또는 range 형식으로 표시한다.
nodeX/meminfo이 node의 memory 분포와 사용량을 제공한다. /proc/meminfo와 비슷하며 세부 필드는 Documentation/filesystems/proc.rst를 참조한다.
nodeX/numastat이 node의 hit와 miss 통계를 page 단위로 제공한다. 자세한 해석은 Documentation/admin-guide/numastat.rst를 참조한다.
nodeX/distance이 node에서 system의 다른 모든 node까지의 NUMA distance를 순서대로 나타낸다.
nodeX/vmstat이 node의 zone 기반 virtual-memory 통계를 제공한다. numastat이 제공하는 통계를 포함하는 상위 집합이다.

Node compaction과 huge page

80-93
경로도입·담당설명
/sys/devices/system/node/nodeX/compact2010년 2월 · Mel Gorman <mel@csn.ul.ie>이 파일에 값을 쓰면 해당 node 안의 모든 memory를 compact한다. 작업이 끝나면 가능한 한 연속 page 수가 많은 block 형태로 free memory가 모인다.
/sys/devices/system/node/nodeX/hugepages/hugepages-<size>/2009년 12월 · Lee Schermerhorn <lee.schermerhorn@hp.com>이 node에서 특정 huge-page size를 조회하거나 제어하는 attribute directory다. 자세한 내용은 Documentation/admin-guide/mm/hugetlbpage.rst를 참조한다.

Access class의 initiator와 target

95-116

이 절의 accessY ABI는 2018년 12월에 도입됐고 Keith Busch <keith.busch@intel.com>가 담당한다. X는 node 번호이고 Y는 동일한 접근 성능을 묶는 access class 번호다.

Memory access class가 표현하는 방향
Initiator nodeaccessY 관계Target memory node
01 CPU 또는 다른 memory initiatortargets/의 symlink접근 대상 nodeX memory
02 initiators/의 symlink같은 bandwidth·latency classread/write 성능값을 보유
03 목록 밖의 initiator다른 access class일 수 있음성능이 달라질 수 있음

Initiator 관점에서는 접근 가능한 target을, target 관점에서는 자신에게 같은 class로 접근하는 initiator를 연결한다.

경로설명
/sys/devices/system/node/nodeX/accessY/Access class Y에 대해 이 node와 다른 node 사이의 관계를 담는 directory다.
nodeX/accessY/initiators/이 target node의 memory에 class Y 성능으로 접근하는 memory-initiator node를 가리키는 symlink directory다. 여기에 없는 node의 CPU나 다른 initiator가 이 memory를 접근하면 성능이 다를 수 있다.
nodeX/accessY/targets/이 initiator node가 class Y 성능으로 접근하는 memory-target node를 가리키는 symlink directory다.

Access class의 bandwidth와 latency

118-144
경로단위설명
nodeX/accessY/initiators/read_bandwidthMB/s이 access class에 연결된 initiator node에서 이 node를 읽을 때의 read bandwidth다.
nodeX/accessY/initiators/read_latencyns이 access class에 연결된 initiator node에서 이 node를 읽을 때의 read latency다.
nodeX/accessY/initiators/write_bandwidthMB/s이 access class에 연결된 initiator node에서 이 node에 쓸 때의 write bandwidth다. 원문 137행의 문법상 누락된 'nodes'는 앞뒤 항목과 같은 의미로 옮겼다.
nodeX/accessY/initiators/write_latencyns이 class에 연결된 initiator node에서 이 node에 쓸 때의 write latency다. 원문 143행의 'when access'는 문맥상 'when accessed'로 해석했다.

Memory-side cache attribute

146-184

memory_side_cache/indexY는 memory-side cache의 level Y에 대한 attribute directory다. 2018년 12월에 도입된 항목은 Keith Busch <keith.busch@intel.com>가 담당한다.

경로값과 의미
nodeX/memory_side_cache/indexY/indexingCache associativity indexing 방식이다. 0이면 direct-mapped이고, 0이 아니면 indexed 방식이다.
nodeX/memory_side_cache/indexY/line_sizeCache miss가 발생했을 때 다음 cache level에서 한 번에 접근하는 byte 수다.
nodeX/memory_side_cache/indexY/size이 memory-side cache의 전체 크기를 byte 단위로 나타낸다.
nodeX/memory_side_cache/indexY/write_policyCache write policy다. 0은 write-back, 1은 write-through이며 그 밖의 값은 other 또는 unknown이다.
nodeX/memory_side_cache/indexY/address_modeAddress mode다. 0은 reserved, 1은 extended-linear다. 이 항목은 2025년 3월에 도입됐고 Dave Jiang <dave.jiang@intel.com>가 담당한다.

SGX memory와 poisoned-page 복구 통계

186-229
경로도입·담당설명
/sys/devices/system/node/nodeX/x86/sgx_total_bytes2021년 11월 · Jarkko Sakkinen <jarkko@kernel.org>이 node가 가진 SGX physical memory의 총량을 byte 단위로 나타낸다.
nodeX/memory_failure/total2023년 1월 · Jiaqi Yan <jiaqiyan@google.com>Memory error 때문에 손상된 data를 포함하는 raw poisoned page의 NUMA-node별 총수다.
nodeX/memory_failure/ignored2023년 1월 · Jiaqi Yan <jiaqiyan@google.com>Raw poisoned page 가운데 memory-error recovery 시도가 무시한 page 수다. 대개 해당 page type의 복구를 지원하지 않아 kernel이 복구를 포기한 경우다.
nodeX/memory_failure/failed2023년 1월 · Jiaqi Yan <jiaqiyan@google.com>Raw poisoned page 가운데 memory-error recovery 시도가 실패한 page 수다. 보통 핵심 recovery operation이 실패했음을 뜻한다.
nodeX/memory_failure/delayed2023년 1월 · Jiaqi Yan <jiaqiyan@google.com>Raw poisoned page 가운데 recovery가 지연된 page 수다. 지연된 poisoned page는 보통 kernel이 나중에 다시 시도한다.
nodeX/memory_failure/recovered2023년 1월 · Jiaqi Yan <jiaqiyan@google.com>Raw poisoned page 가운데 memory-error recovery 시도로 복구된 page 수다.

사용자가 시작하는 node 단위 proactive reclaim

231-238
항목내용
What/sys/devices/system/node/nodeX/reclaim
Date2025년 6월
ContactLinux Memory Management list <linux-mm@kvack.org>

이 파일은 사용자가 특정 NUMA node에 proactive reclaim을 수행하도록 요청하는 interface다. 동작은 memcg variant와 같다. 자세한 내용은 Documentation/admin-guide/cgroup-v2.rst를 참조한다.