ScyllaDB runs compaction periodically as a background process. While running compaction is important, there are situations when compaction takes too much CPU. As a result, compaction impacts the overall system performance.
If this is the case, you can do one of the following:
Statically limit the compaction shares with the
compaction_static_shares option by setting a value between 50 and 1000:
In the command line when starting ScyllaDB:
You may start by setting the value
100. If read latency is impacted, which indicates that compaction is overly slowed down,
you can increase the value to reach the balance between the system performance and read latency.
min_threshold by setting
compaction_enforce_min_threshold: true in the
scylla.yml configuration file.
As a result, ScyllaDB will compact only the buckets that contain the number of SSTables specified with
or more. See STCS options for details.