|
@@ -70,6 +70,7 @@ Brief summary of control files.
|
|
|
(See sysctl's vm.swappiness)
|
|
|
memory.move_charge_at_immigrate # set/show controls of moving charges
|
|
|
memory.oom_control # set/show oom controls.
|
|
|
+ memory.numa_stat # show the number of memory usage per numa node
|
|
|
|
|
|
1. History
|
|
|
|
|
@@ -464,6 +465,24 @@ value for efficient access. (Of course, when necessary, it's synchronized.)
|
|
|
If you want to know more exact memory usage, you should use RSS+CACHE(+SWAP)
|
|
|
value in memory.stat(see 5.2).
|
|
|
|
|
|
+5.6 numa_stat
|
|
|
+
|
|
|
+This is similar to numa_maps but operates on a per-memcg basis. This is
|
|
|
+useful for providing visibility into the numa locality information within
|
|
|
+an memcg since the pages are allowed to be allocated from any physical
|
|
|
+node. One of the usecases is evaluating application performance by
|
|
|
+combining this information with the application's cpu allocation.
|
|
|
+
|
|
|
+We export "total", "file", "anon" and "unevictable" pages per-node for
|
|
|
+each memcg. The ouput format of memory.numa_stat is:
|
|
|
+
|
|
|
+total=<total pages> N0=<node 0 pages> N1=<node 1 pages> ...
|
|
|
+file=<total file pages> N0=<node 0 pages> N1=<node 1 pages> ...
|
|
|
+anon=<total anon pages> N0=<node 0 pages> N1=<node 1 pages> ...
|
|
|
+unevictable=<total anon pages> N0=<node 0 pages> N1=<node 1 pages> ...
|
|
|
+
|
|
|
+And we have total = file + anon + unevictable.
|
|
|
+
|
|
|
6. Hierarchy support
|
|
|
|
|
|
The memory controller supports a deep hierarchy and hierarchical accounting.
|