forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.3 KiB
54 lines
2.3 KiB
================= |
|
Scheduler debugfs |
|
================= |
|
|
|
Booting a kernel with CONFIG_SCHED_DEBUG=y will give access to |
|
scheduler specific debug files under /sys/kernel/debug/sched. Some of |
|
those files are described below. |
|
|
|
numa_balancing |
|
============== |
|
|
|
`numa_balancing` directory is used to hold files to control NUMA |
|
balancing feature. If the system overhead from the feature is too |
|
high then the rate the kernel samples for NUMA hinting faults may be |
|
controlled by the `scan_period_min_ms, scan_delay_ms, |
|
scan_period_max_ms, scan_size_mb` files. |
|
|
|
|
|
scan_period_min_ms, scan_delay_ms, scan_period_max_ms, scan_size_mb |
|
------------------------------------------------------------------- |
|
|
|
Automatic NUMA balancing scans tasks address space and unmaps pages to |
|
detect if pages are properly placed or if the data should be migrated to a |
|
memory node local to where the task is running. Every "scan delay" the task |
|
scans the next "scan size" number of pages in its address space. When the |
|
end of the address space is reached the scanner restarts from the beginning. |
|
|
|
In combination, the "scan delay" and "scan size" determine the scan rate. |
|
When "scan delay" decreases, the scan rate increases. The scan delay and |
|
hence the scan rate of every task is adaptive and depends on historical |
|
behaviour. If pages are properly placed then the scan delay increases, |
|
otherwise the scan delay decreases. The "scan size" is not adaptive but |
|
the higher the "scan size", the higher the scan rate. |
|
|
|
Higher scan rates incur higher system overhead as page faults must be |
|
trapped and potentially data must be migrated. However, the higher the scan |
|
rate, the more quickly a tasks memory is migrated to a local node if the |
|
workload pattern changes and minimises performance impact due to remote |
|
memory accesses. These files control the thresholds for scan delays and |
|
the number of pages scanned. |
|
|
|
``scan_period_min_ms`` is the minimum time in milliseconds to scan a |
|
tasks virtual memory. It effectively controls the maximum scanning |
|
rate for each task. |
|
|
|
``scan_delay_ms`` is the starting "scan delay" used for a task when it |
|
initially forks. |
|
|
|
``scan_period_max_ms`` is the maximum time in milliseconds to scan a |
|
tasks virtual memory. It effectively controls the minimum scanning |
|
rate for each task. |
|
|
|
``scan_size_mb`` is how many megabytes worth of pages are scanned for |
|
a given scan.
|
|
|