summaryrefslogtreecommitdiff
path: root/docs/system/options-performance.rst
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-11-12 18:22:11 +0100
committerChristian Poessinger <christian@poessinger.com>2020-11-12 18:22:34 +0100
commit85206b1c287de9f45d74181f636d08b11e37cd50 (patch)
treee9b7942d44a7a7c301cf24f617c9632295250ea2 /docs/system/options-performance.rst
parenta27e6aa461c7be46ed7a98c01f2e5ebe06218234 (diff)
downloadvyos-documentation-85206b1c287de9f45d74181f636d08b11e37cd50.tar.gz
vyos-documentation-85206b1c287de9f45d74181f636d08b11e37cd50.zip
T3048: add documentation for "system options performance" command
Diffstat (limited to 'docs/system/options-performance.rst')
-rw-r--r--docs/system/options-performance.rst39
1 files changed, 39 insertions, 0 deletions
diff --git a/docs/system/options-performance.rst b/docs/system/options-performance.rst
new file mode 100644
index 00000000..32e95520
--- /dev/null
+++ b/docs/system/options-performance.rst
@@ -0,0 +1,39 @@
+.. _system_options_performance:
+
+###########
+Performance
+###########
+
+As more and more routers run on Hypervisors, expecially with a :abbr:`NOS
+(Network Operating System)` as VyOS, it makes fewer and fewer sense to use
+static resource bindings like ``smp-affinity`` as present in VyOS 1.2 and
+earlier to pin certain interrupt handlers to specific CPUs.
+
+We now utilize `tuned` for dynamic resource balancing based on profiles.
+
+ .. seealso:: https://access.redhat.com/sites/default/files/attachments/201501-perf-brief-low-latency-tuning-rhel7-v2.1.pdf
+
+Configureation
+==============
+
+.. cfgcmd:: set system options performance < throughput | latency >
+
+ Configure one of the predefined system performance profiles.
+
+ * ``throughput``: A server profile focused on improving network throughput.
+ This profile favors performance over power savings by setting ``intel_pstate``
+ and ``max_perf_pct=100`` and increasing kernel network buffer sizes.
+
+ It enables transparent huge pages, and uses cpupower to set the performance
+ cpufreq governor. It also sets ``kernel.sched_min_granularity_ns`` to 10 us,
+ ``kernel.sched_wakeup_granularity_ns`` to 15 uss, and ``vm.dirty_ratio`` to
+ 40%.
+
+ * ``latency``: A server profile focused on lowering network latency.
+ This profile favors performance over power savings by setting ``intel_pstate``
+ and ``min_perf_pct=100``.
+
+ It disables transparent huge pages, and automatic NUMA balancing. It also
+ uses cpupower to set the performance cpufreq governor, and requests a
+ cpu_dma_latency value of 1. It also sets busy_read and busy_poll times to
+ 50 us, and tcp_fastopen to 3.