From 41809846b227a95ec4b690a2ee8967fafe35cfa9 Mon Sep 17 00:00:00 2001 From: linxin Date: Wed, 8 Nov 2023 17:13:11 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=88=20perf:=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ansible/roles/tuned/files/tuned.conf | 61 ++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/ansible/roles/tuned/files/tuned.conf b/ansible/roles/tuned/files/tuned.conf index c1827de9..f7eb92e6 100644 --- a/ansible/roles/tuned/files/tuned.conf +++ b/ansible/roles/tuned/files/tuned.conf @@ -1,12 +1,65 @@ [main] -include=cpu-partitioning -summary=Optimize for tsg-os device CPU partitioning +summary=Optimize for TSG-OS + +[cpu] +force_latency=cstate.id_no_zero:1|3 +governor=performance +energy_perf_bias=performance +min_perf_pct=100 + +[variables] +# User is responsible for updating variables.conf with variable content such as isolated_cores=X-Y +include=/etc/tuned/cpu-partitioning-variables.conf + +isolated_cores_assert_check = \\${isolated_cores} +# Make sure isolated_cores is defined before any of the variables that +# use it (such as assert1) are defined, so that child profiles can set +# isolated_cores directly in the profile (tuned.conf) +isolated_cores = ${isolated_cores} +# Fail if isolated_cores are not set +assert1=${f:assertion_non_equal:isolated_cores are set:${isolated_cores}:${isolated_cores_assert_check}} + +# tmpdir +tmpdir=${f:strip:${f:exec:mktemp:-d}} +# Non-isolated cores cpumask including offline cores +isolated_cores_expanded=${f:cpulist_unpack:${isolated_cores}} +isolated_cpumask=${f:cpulist2hex:${isolated_cores_expanded}} +not_isolated_cores_expanded=${f:cpulist_invert:${isolated_cores_expanded}} +isolated_cores_online_expanded=${f:cpulist_online:${isolated_cores}} +not_isolated_cores_online_expanded=${f:cpulist_online:${not_isolated_cores_expanded}} +not_isolated_cpumask=${f:cpulist2hex:${not_isolated_cores_expanded}} +# Make sure no_balance_cores is defined before +# no_balance_cores_expanded is defined, so that child profiles can set +# no_balance_cores directly in the profile (tuned.conf) +no_balance_cores=${no_balance_cores} +no_balance_cores_expanded=${f:cpulist_unpack:${no_balance_cores}} + +# Fail if isolated_cores contains CPUs which are not online +assert2=${f:assertion:isolated_cores contains online CPU(s):${isolated_cores_expanded}:${isolated_cores_online_expanded}} + +[sysfs] +/sys/bus/workqueue/devices/writeback/cpumask = ${not_isolated_cpumask} +/sys/devices/virtual/workqueue/cpumask = ${not_isolated_cpumask} +/sys/devices/virtual/workqueue/*/cpumask = ${not_isolated_cpumask} +/sys/devices/system/machinecheck/machinecheck*/ignore_ce = 1 + +[systemd] +cpu_affinity=${not_isolated_cores_expanded} + +[irqbalance] +banned_cpus=${isolated_cores} + +[script] +priority=5 +script=/usr/lib/tuned/cpu-partitioning/script.sh [scheduler] group.default=0:*:0:${not_isolated_cpumask}:.*:.* -group.isolate=1:*:0:*:.*:^(telegraf|sapp_marsio_.*|sce:worker-.*|lcore-worker-.*|.*pmd.*|.*PMD.*|DPDK|.*qemu-kvm.*|contrail-vroute|lcore-slave-.*|rte_mp_handle|rte_mp_async|eal-intr-thread)$ +group.isolate=1:*:0:*:.*:^(pkt:worker|shape-work-.*|sapp_marsio_.*|sce:worker-.*|lcore-worker-.*|.*pmd.*|.*PMD.*|DPDK|.*qemu-kvm.*|contrail-vroute|lcore-slave-.*|rte_mp_handle|rte_mp_async|eal-intr-thread)$ isolated_cores=${isolated_cores} -ps_blacklist=^telegraf;^sapp_marsio_.*;^sce:worker-.*;^lcore-worker-.*;.*pmd.*;.*PMD.*;^DPDK;.*qemu-kvm.*;^contrail-vroute$;^lcore-slave-.*;^rte_mp_handle$;^rte_mp_async$;^eal-intr-thread$ +ps_blacklist=^pkt:worker;^shape-work-.*;^sapp_marsio_.*;^sce:worker-.*;^lcore-worker-.*;.*pmd.*;.*PMD.*;^DPDK;.*qemu-kvm.*;^contrail-vroute$;^lcore-slave-.*;^rte_mp_handle$;^rte_mp_async$;^eal-intr-thread$ perf_process_fork=True perf_mmap_pages=4096 runtime=1 + +