Appendix A. Tool Reference
This appendix provides a quick reference for the various tools in Red Hat Enterprise Linux 7 that can be used to tweak performance. See the relevant man page for your tool for complete, up-to-date, detailed reference material.
A.1. irqbalance
irqbalance is a command line tool that distributes hardware interrupts across processors to improve system performance. It runs as a daemon by default, but can be run once only with the
--oneshot
option.
The following parameters are useful for improving performance.
- --powerthresh
- Sets the number of CPUs that can idle before a CPU is placed into powersave mode. If more CPUs than the threshold are more than 1 standard deviation below the average
softirq
workload and no CPUs are more than one standard deviation above the average, and have more than oneirq
assigned to them, a CPU is placed into powersave mode. In powersave mode, a CPU is not part ofirq
balancing so that it is not woken unnecessarily. - --hintpolicy
- Determines how
irq
kernel affinity hinting is handled. Valid values areexact
(irq
affinity hint is always applied),subset
(irq
is balanced, but the assigned object is a subset of the affinity hint), orignore
(irq
affinity hint is ignored completely). - --policyscript
- Defines the location of a script to execute for each interrupt request, with the device path and
irq
number passed as arguments, and a zero exit code expected by irqbalance. The script defined can specify zero or more key value pairs to guide irqbalance in managing the passedirq
.The following are recognized as valid key value pairs.- ban
- Valid values are
true
(exclude the passedirq
from balancing) orfalse
(perform balancing on thisirq
). - balance_level
- Allows user override of the balance level of the passed
irq
. By default the balance level is based on the PCI device class of the device that owns theirq
. Valid values arenone
,package
,cache
, orcore
. - numa_node
- Allows user override of the NUMA node that is considered local to the passed
irq
. If information about the local node is not specified in ACPI, devices are considered equidistant from all nodes. Valid values are integers (starting from 0) that identify a specific NUMA node, and-1
, which specifies that anirq
should be considered equidistant from all nodes.
- --banirq
- The interrupt with the specified interrupt request number is added to the list of banned interrupts.
You can also use the
IRQBALANCE_BANNED_CPUS
environment variable to specify a mask of CPUs that are ignored by irqbalance.
For further details, see the man page:
$ man irqbalance