요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Node별 topology와 memory 통계
sysfs-devices-node:32-93nodeX의 CPU affinity, memory usage, NUMA hit·miss, distance, zone 통계, compaction과 huge page control을 다룹니다.
Heterogeneous-memory access class
sysfs-devices-node:95-144Memory initiator와 target 사이의 성능 등급 및 read·write bandwidth와 latency를 표현합니다.
Memory-side cache
sysfs-devices-node:146-184Memory-side cache level의 indexing, line size, capacity, write policy와 address mode를 설명합니다.
SGX, memory failure와 reclaim
sysfs-devices-node:186-238SGX physical memory, poisoned-page recovery 결과와 사용자가 시작하는 node 단위 proactive reclaim을 다룹니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
What: /sys/devices/system/node/possible
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
Nodes that could be possibly become online at some point.
What: /sys/devices/system/node/online
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
Nodes that are online.
What: /sys/devices/system/node/has_normal_memory
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
Nodes that have regular memory.
What: /sys/devices/system/node/has_cpu
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
Nodes that have one or more CPUs.
What: /sys/devices/system/node/has_high_memory
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
Nodes that have regular or high memory.
Depends on CONFIG_HIGHMEM.
What: /sys/devices/system/node/nodeX
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
When CONFIG_NUMA is enabled, this is a directory containing
information on node X such as what CPUs are local to the
node. Each file is detailed next.
What: /sys/devices/system/node/nodeX/cpumap
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
The node's cpumap.
What: /sys/devices/system/node/nodeX/cpulist
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
The CPUs associated to the node.
What: /sys/devices/system/node/nodeX/meminfo
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
Provides information about the node's distribution and memory
utilization. Similar to /proc/meminfo, see Documentation/filesystems/proc.rst
What: /sys/devices/system/node/nodeX/numastat
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
The node's hit/miss statistics, in units of pages.
See Documentation/admin-guide/numastat.rst
What: /sys/devices/system/node/nodeX/distance
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
Distance between the node and all the other nodes
in the system.
What: /sys/devices/system/node/nodeX/vmstat
Date: October 2002
Contact: Linux Memory Management list <[email protected]>
Description:
The node's zoned virtual memory statistics.
This is a superset of numastat.
What: /sys/devices/system/node/nodeX/compact
Date: February 2010
Contact: Mel Gorman <[email protected]>
Description:
When this file is written to, all memory within that node
will be compacted. When it completes, memory will be freed
into blocks which have as many contiguous pages as possible
What: /sys/devices/system/node/nodeX/hugepages/hugepages-<size>/
Date: December 2009
Contact: Lee Schermerhorn <[email protected]>
Description:
The node's huge page size control/query attributes.
See Documentation/admin-guide/mm/hugetlbpage.rst
What: /sys/devices/system/node/nodeX/accessY/
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
The node's relationship to other nodes for access class "Y".
What: /sys/devices/system/node/nodeX/accessY/initiators/
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
The directory containing symlinks to memory initiator
nodes that have class "Y" access to this target node's
memory. CPUs and other memory initiators in nodes not in
the list accessing this node's memory may have different
performance.
What: /sys/devices/system/node/nodeX/accessY/targets/
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
The directory containing symlinks to memory targets that
this initiator node has class "Y" access.
What: /sys/devices/system/node/nodeX/accessY/initiators/read_bandwidth
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
This node's read bandwidth in MB/s when accessed from
nodes found in this access class's linked initiators.
What: /sys/devices/system/node/nodeX/accessY/initiators/read_latency
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
This node's read latency in nanoseconds when accessed
from nodes found in this access class's linked initiators.
What: /sys/devices/system/node/nodeX/accessY/initiators/write_bandwidth
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
This node's write bandwidth in MB/s when accessed from
found in this access class's linked initiators.
What: /sys/devices/system/node/nodeX/accessY/initiators/write_latency
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
This node's write latency in nanoseconds when access
from nodes found in this class's linked initiators.
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
The directory containing attributes for the memory-side cache
level 'Y'.
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/indexing
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
The caches associativity indexing: 0 for direct mapped,
non-zero if indexed.
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/line_size
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
The number of bytes accessed from the next cache level on a
cache miss.
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/size
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
The size of this memory side cache in bytes.
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/write_policy
Date: December 2018
Contact: Keith Busch <[email protected]>
Description:
The cache write policy: 0 for write-back, 1 for write-through,
other or unknown.
What: /sys/devices/system/node/nodeX/memory_side_cache/indexY/address_mode
Date: March 2025
Contact: Dave Jiang <[email protected]>
Description:
The address mode: 0 for reserved, 1 for extended-linear.
What: /sys/devices/system/node/nodeX/x86/sgx_total_bytes
Date: November 2021
Contact: Jarkko Sakkinen <[email protected]>
Description:
The total amount of SGX physical memory in bytes.
What: /sys/devices/system/node/nodeX/memory_failure/total
Date: January 2023
Contact: Jiaqi Yan <[email protected]>
Description:
The total number of raw poisoned pages (pages containing
corrupted data due to memory errors) on a NUMA node.
What: /sys/devices/system/node/nodeX/memory_failure/ignored
Date: January 2023
Contact: Jiaqi Yan <[email protected]>
Description:
Of the raw poisoned pages on a NUMA node, how many pages are
ignored by memory error recovery attempt, usually because
support for this type of pages is unavailable, and kernel
gives up the recovery.
What: /sys/devices/system/node/nodeX/memory_failure/failed
Date: January 2023
Contact: Jiaqi Yan <[email protected]>
Description:
Of the raw poisoned pages on a NUMA node, how many pages are
failed by memory error recovery attempt. This usually means
a key recovery operation failed.
What: /sys/devices/system/node/nodeX/memory_failure/delayed
Date: January 2023
Contact: Jiaqi Yan <[email protected]>
Description:
Of the raw poisoned pages on a NUMA node, how many pages are
delayed by memory error recovery attempt. Delayed poisoned
pages usually will be retried by kernel.
What: /sys/devices/system/node/nodeX/memory_failure/recovered
Date: January 2023
Contact: Jiaqi Yan <[email protected]>
Description:
Of the raw poisoned pages on a NUMA node, how many pages are
recovered by memory error recovery attempt.
What: /sys/devices/system/node/nodeX/reclaim
Date: June 2025
Contact: Linux Memory Management list <[email protected]>
Description:
Perform user-triggered proactive reclaim on a NUMA node.
This interface is equivalent to the memcg variant.
See Documentation/admin-guide/cgroup-v2.rst
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
System-wide node mask
1-30이 절의 다섯 ABI는 2002년 10월에 도입됐고 Linux Memory Management 메일링 리스트 <[email protected]>가 담당한다. 출력은 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 <[email protected]> |
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/compact | 2010년 2월 · Mel Gorman <[email protected]> | 이 파일에 값을 쓰면 해당 node 안의 모든 memory를 compact한다. 작업이 끝나면 가능한 한 연속 page 수가 많은 block 형태로 free memory가 모인다. |
| /sys/devices/system/node/nodeX/hugepages/hugepages-<size>/ | 2009년 12월 · Lee Schermerhorn <[email protected]> | 이 node에서 특정 huge-page size를 조회하거나 제어하는 attribute directory다. 자세한 내용은 Documentation/admin-guide/mm/hugetlbpage.rst를 참조한다. |
Access class의 initiator와 target
95-116이 절의 accessY ABI는 2018년 12월에 도입됐고 Keith Busch <[email protected]>가 담당한다. X는 node 번호이고 Y는 동일한 접근 성능을 묶는 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_bandwidth | MB/s | 이 access class에 연결된 initiator node에서 이 node를 읽을 때의 read bandwidth다. |
| nodeX/accessY/initiators/read_latency | ns | 이 access class에 연결된 initiator node에서 이 node를 읽을 때의 read latency다. |
| nodeX/accessY/initiators/write_bandwidth | MB/s | 이 access class에 연결된 initiator node에서 이 node에 쓸 때의 write bandwidth다. 원문 137행의 문법상 누락된 'nodes'는 앞뒤 항목과 같은 의미로 옮겼다. |
| nodeX/accessY/initiators/write_latency | ns | 이 class에 연결된 initiator node에서 이 node에 쓸 때의 write latency다. 원문 143행의 'when access'는 문맥상 'when accessed'로 해석했다. |
Memory-side cache attribute
146-184memory_side_cache/indexY는 memory-side cache의 level Y에 대한 attribute directory다. 2018년 12월에 도입된 항목은 Keith Busch <[email protected]>가 담당한다.
| 경로 | 값과 의미 |
|---|---|
| nodeX/memory_side_cache/indexY/indexing | Cache associativity indexing 방식이다. 0이면 direct-mapped이고, 0이 아니면 indexed 방식이다. |
| nodeX/memory_side_cache/indexY/line_size | Cache miss가 발생했을 때 다음 cache level에서 한 번에 접근하는 byte 수다. |
| nodeX/memory_side_cache/indexY/size | 이 memory-side cache의 전체 크기를 byte 단위로 나타낸다. |
| nodeX/memory_side_cache/indexY/write_policy | Cache write policy다. 0은 write-back, 1은 write-through이며 그 밖의 값은 other 또는 unknown이다. |
| nodeX/memory_side_cache/indexY/address_mode | Address mode다. 0은 reserved, 1은 extended-linear다. 이 항목은 2025년 3월에 도입됐고 Dave Jiang <[email protected]>가 담당한다. |
SGX memory와 poisoned-page 복구 통계
186-229| 경로 | 도입·담당 | 설명 |
|---|---|---|
| /sys/devices/system/node/nodeX/x86/sgx_total_bytes | 2021년 11월 · Jarkko Sakkinen <[email protected]> | 이 node가 가진 SGX physical memory의 총량을 byte 단위로 나타낸다. |
| nodeX/memory_failure/total | 2023년 1월 · Jiaqi Yan <[email protected]> | Memory error 때문에 손상된 data를 포함하는 raw poisoned page의 NUMA-node별 총수다. |
| nodeX/memory_failure/ignored | 2023년 1월 · Jiaqi Yan <[email protected]> | Raw poisoned page 가운데 memory-error recovery 시도가 무시한 page 수다. 대개 해당 page type의 복구를 지원하지 않아 kernel이 복구를 포기한 경우다. |
| nodeX/memory_failure/failed | 2023년 1월 · Jiaqi Yan <[email protected]> | Raw poisoned page 가운데 memory-error recovery 시도가 실패한 page 수다. 보통 핵심 recovery operation이 실패했음을 뜻한다. |
| nodeX/memory_failure/delayed | 2023년 1월 · Jiaqi Yan <[email protected]> | Raw poisoned page 가운데 recovery가 지연된 page 수다. 지연된 poisoned page는 보통 kernel이 나중에 다시 시도한다. |
| nodeX/memory_failure/recovered | 2023년 1월 · Jiaqi Yan <[email protected]> | Raw poisoned page 가운데 memory-error recovery 시도로 복구된 page 수다. |
사용자가 시작하는 node 단위 proactive reclaim
231-238| 항목 | 내용 |
|---|---|
| What | /sys/devices/system/node/nodeX/reclaim |
| Date | 2025년 6월 |
| Contact | Linux Memory Management list <[email protected]> |
이 파일은 사용자가 특정 NUMA node에 proactive reclaim을 수행하도록 요청하는 interface다. 동작은 memcg variant와 같다. 자세한 내용은 Documentation/admin-guide/cgroup-v2.rst를 참조한다.
System-wide node mask
sysfs-devices-node:1-30possible·online node와 normal·high memory 또는 CPU를 가진 node를 bitmap 형식으로 구분합니다.