Back to Scylladb

Customizing CPUSET

docs/kb/customizing-cpuset.rst

latest1.9 KB
Original Source

========================== Customizing CPUSET

CPUSET in the /etc/scylla.d/cpuset.conf file is automatically configured by running the scylla_setup (or scylla_cpuset_setup) script. If you want to customize CPUSET, you must modify both the cpuset.conf and perftune.yaml files.

Note that the scylla-server service will generate /etc/scylla.d/perftune.yaml only if the file doesn't exist.

Examples

Here are a few examples of possible configurations. In the examples, eth5 is used as a NIC name and /var/lib/scylla as a data directory.

Example 1 ^^^^^^^^^^

  • 16 CPUs system.
  • You want to run ScyllaDB on CPUs 3, 4, 5, and have IRQs handled on the same CPUs, while allowing other apps on the same machine to benefit from XFS/RFS/RPS from eth5.

cpuset.conf:

.. code-block:: none

CPUSET="--cpuset 3,4,5 "

perftune.yaml:

.. code-block:: none

cpu_mask: '0xffff'
dir:
- /var/lib/scylla
irq_cpu_mask: '0x38'
nic:
- eth5
tune:
- net
- disks

Example 2 ^^^^^^^^^^

  • 16 CPUs system.
  • You want to run ScyllaDB on CPUs 3, 4, 5, and have IRQs handled on the same CPUs, and ScyllaDB is going to be the only application that will use eth5.

cpuset.conf:

.. code-block:: none

CPUSET="--cpuset 3,4,5 "

perftune.yaml:

.. code-block:: none

cpu_mask: '0x38'
dir:
- /var/lib/scylla
irq_cpu_mask: '0x38'
nic:
- eth5
tune:
- net
- disks

Example 3 ^^^^^^^^^^

  • 16 CPUs system.
  • You want to run ScyllaDB on CPUs 3, 4, 5, and IRQs handled on CPUs 6,7,8, while allowing other apps on the same machine to benefit from XFS/RFS/RPS from eth5.

cpuset.conf:

.. code-block:: none

CPUSET="--cpuset 3,4,5 "

perftune.yaml:

.. code-block:: none

cpu_mask: '0xffff'
dir:
- /var/lib/scylla
irq_cpu_mask: '0x1c0'
nic:
- eth5
tune:
- net
- disks