Chapter 5. NUMA Tools

The dlook (1) and dplace(1) tools that you can use to improve the performance of processes running on your SGI nonuniform memory access (NUMA) machine. You can use dlook (1) to find out where in memory the operating system is placing your application's pages and how much system and user CPU time it is consuming. You can use the dplace(1) command to bind a related set of processes to specific CPUs or nodes to prevent process migration. This can improve the performance of your application since it increases the percentage of memory accesses that are local.

The taskset(1) command is used to set or retrieve the CPU affinity of a running process given its PID or to launch a new command with a given CPU affinity. CPU affinity is a scheduler property that "bonds" a process to a given set of CPUs on the system. The Linux scheduler will honor the given CPU affinity and the process will not run on any other CPUs. Note that the Linux scheduler also supports natural CPU affinity; the scheduler attempts to keep processes on the same CPU as long as practical for performance reasons. Therefore, forcing a specific CPU affinity is useful only in certain applications.


Note: Information about these commands and memory locality and application performance, in general, can be found in the Linux Application Tuning Guide.