Was this page helpful?
ScyllaDB’s Seastar Perftune helps you run ScyllaDB with its maximum performance. The perftune.py script handles network and disk tuning, reassigning IRQs to specific CPU cores and freeing the other cores for ScyllaDB’s exclusive use.
More specifically, running the script will:
Ban relevant IRQs from being moved by irqbalance.
Configure various system parameters in /proc/sys.
Distribute the IRQs (using SMP affinity configuration) among CPUs according to
the irq_cpu_mask
value. Note that more than one physical core will be used
for IRQ handling for large machines.
To ensure that the tuning persists after a host reboot, we recommend creating a systemd unit that will run on host startup and re-tune the hosts.
The perfrune.yaml
file is the output file of the perftune.py
script
(with the --dump-options-file
option enabled). The script determines
the irq_cpu_mask
and prints it to perftume.yaml
on the first machine.
It’s important to use the same irq_cpu_mask
value on other machines, even if more machines are
added to the cluster, to avoid a mixed-cluster situation.
Note that perftune.yaml
is generated only if the file doesn’t exist.
You can run perftune.py
with the following options:
Option |
Description |
---|---|
|
Enables/disables aRFS. |
|
The masks of cores to use. The default is all available cores. |
|
Specifies the device to optimize; for example, |
|
Specifies the directory to optimize. You can use it more than once to specify multiple directories. |
|
Prints recommendations on what to do without taking any action. |
|
Prints the configuration YAML file containing the current configuration. |
|
Prints the CPU mask to be used for computation. |
|
Prints the CPU mask to be used for computation. Prints the zero CPU set if that’s what it is. |
|
Prints the CPU mask to be used for IRQs binding. |
|
Specifies a ratio for IRQ mask auto-detection. For example, if 8 is given and
auto-detection is requested, a single IRQ CPU core is going to be allocated
for every 8 CPU cores out of available according to the |
|
The mask of the cores to be used for IRQs binding. |
|
The network interface name. The default is |
|
Sets a given number of Rx queues. |
|
The configuration YAML file. |
|
Specifies the components to configure. You can use it more than once to specify multiple values. The available values are:
|
|
Forces tuning of /system/clocksource. The default is |
|
Provides additional details about operations and their results. |
|
Enables/disables the write back write cache mode. |
Was this page helpful?