commit
c7a5d49df6
@ -0,0 +1 @@
|
|||||||
|
SOURCES/tuned-2.20.0.tar.gz
|
@ -0,0 +1 @@
|
|||||||
|
6a6c9a91ab1e556b884965432895cdf64ebd6016 SOURCES/tuned-2.20.0.tar.gz
|
@ -0,0 +1,61 @@
|
|||||||
|
# Tuned rules for recommend_profile.
|
||||||
|
#
|
||||||
|
# Syntax:
|
||||||
|
# [PROFILE1]
|
||||||
|
# KEYWORD11=RE11
|
||||||
|
# KEYWORD21=RE12
|
||||||
|
#
|
||||||
|
# [PROFILE2]
|
||||||
|
# KEYWORD21=RE21
|
||||||
|
# KEYWORD22=RE22
|
||||||
|
|
||||||
|
# KEYWORD can be:
|
||||||
|
# virt - for RE to match output of virt-what
|
||||||
|
# system - for RE to match content of /etc/system-release-cpe
|
||||||
|
# process - for RE to match running processes. It can have arbitrary
|
||||||
|
# suffix, all process* lines have to match for the PROFILE
|
||||||
|
# to match (i.e. the AND operator)
|
||||||
|
# /FILE - for RE to match content of the FILE, e.g.:
|
||||||
|
# '/etc/passwd=.+'. If file doesn't exist, its RE will not
|
||||||
|
# match.
|
||||||
|
# chassis_type - for RE to match the chassis type as reported by dmidecode
|
||||||
|
# syspurpose_role - for RE to match the system role as reported by syspurpose
|
||||||
|
|
||||||
|
# All REs for all KEYWORDs have to match for PROFILE to match (i.e. the AND operator).
|
||||||
|
# If 'virt' or 'system' is not specified, it matches for every string.
|
||||||
|
# If 'virt' or 'system' is empty, i.e. 'virt=', it matches only empty string (alias for '^$').
|
||||||
|
# If several profiles matched, the first match is taken.
|
||||||
|
#
|
||||||
|
# Limitation:
|
||||||
|
# Each profile can be specified only once, because there cannot be
|
||||||
|
# multiple sections in the configuration file with the same name
|
||||||
|
# (ConfigObj limitation).
|
||||||
|
# If there is a need to specify the profile multiple times, unique
|
||||||
|
# suffix like ',ANYSTRING' can be used. Everything after the last ','
|
||||||
|
# is stripped by the parser, e.g.:
|
||||||
|
#
|
||||||
|
# [balanced,1]
|
||||||
|
# /FILE1=RE1
|
||||||
|
#
|
||||||
|
# [balanced,2]
|
||||||
|
# /FILE2=RE2
|
||||||
|
#
|
||||||
|
# This will set 'balanced' profile in case there is FILE1 matching RE1 or
|
||||||
|
# FILE2 matching RE2 or both.
|
||||||
|
|
||||||
|
[atomic-host]
|
||||||
|
virt=
|
||||||
|
syspurpose_role=.*atomic.*
|
||||||
|
|
||||||
|
[atomic-guest]
|
||||||
|
virt=.+
|
||||||
|
syspurpose_role=.*atomic.*
|
||||||
|
|
||||||
|
[virtual-guest]
|
||||||
|
virt=.+
|
||||||
|
|
||||||
|
[balanced]
|
||||||
|
syspurpose_role=(.*(desktop|workstation).*)|^$
|
||||||
|
chassis_type=.*(Notebook|Laptop|Portable).*
|
||||||
|
|
||||||
|
[throughput-performance]
|
@ -0,0 +1,80 @@
|
|||||||
|
diff --git a/profiles/cpu-partitioning/script.sh b/profiles/cpu-partitioning/script.sh
|
||||||
|
index 84e04fd..8677050 100755
|
||||||
|
--- a/profiles/cpu-partitioning/script.sh
|
||||||
|
+++ b/profiles/cpu-partitioning/script.sh
|
||||||
|
@@ -2,6 +2,38 @@
|
||||||
|
|
||||||
|
. /usr/lib/tuned/functions
|
||||||
|
|
||||||
|
+no_balance_cpus_file=$STORAGE/no-balance-cpus.txt
|
||||||
|
+
|
||||||
|
+change_sd_balance_bit()
|
||||||
|
+{
|
||||||
|
+ local set_bit=$1
|
||||||
|
+ local flags_cur=
|
||||||
|
+ local file=
|
||||||
|
+ local cpu=
|
||||||
|
+
|
||||||
|
+ for cpu in $(cat $no_balance_cpus_file); do
|
||||||
|
+ for file in $(find /proc/sys/kernel/sched_domain/cpu$cpu -name flags -print); do
|
||||||
|
+ flags_cur=$(cat $file)
|
||||||
|
+ if [ $set_bit -eq 1 ]; then
|
||||||
|
+ flags_cur=$((flags_cur | 0x1))
|
||||||
|
+ else
|
||||||
|
+ flags_cur=$((flags_cur & 0xfffe))
|
||||||
|
+ fi
|
||||||
|
+ echo $flags_cur > $file
|
||||||
|
+ done
|
||||||
|
+ done
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+disable_balance_domains()
|
||||||
|
+{
|
||||||
|
+ change_sd_balance_bit 0
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+enable_balance_domains()
|
||||||
|
+{
|
||||||
|
+ change_sd_balance_bit 1
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
start() {
|
||||||
|
mkdir -p "${TUNED_tmpdir}/etc/systemd"
|
||||||
|
mkdir -p "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev"
|
||||||
|
@@ -9,6 +41,9 @@ start() {
|
||||||
|
cp 00-tuned-pre-udev.sh "${TUNED_tmpdir}/usr/lib/dracut/hooks/pre-udev/"
|
||||||
|
setup_kvm_mod_low_latency
|
||||||
|
disable_ksm
|
||||||
|
+
|
||||||
|
+ echo "$TUNED_no_balance_cores_expanded" | sed 's/,/ /g' > $no_balance_cpus_file
|
||||||
|
+ disable_balance_domains
|
||||||
|
return "$?"
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -18,6 +53,7 @@ stop() {
|
||||||
|
teardown_kvm_mod_low_latency
|
||||||
|
enable_ksm
|
||||||
|
fi
|
||||||
|
+ enable_balance_domains
|
||||||
|
return "$?"
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/profiles/cpu-partitioning/tuned.conf b/profiles/cpu-partitioning/tuned.conf
|
||||||
|
index 979e40b..842e2bd 100644
|
||||||
|
--- a/profiles/cpu-partitioning/tuned.conf
|
||||||
|
+++ b/profiles/cpu-partitioning/tuned.conf
|
||||||
|
@@ -35,8 +35,6 @@ 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}}
|
||||||
|
|
||||||
|
-cmd_isolcpus=${f:regex_search_ternary:${no_balance_cores}:\s*[0-9]: isolcpus=${no_balance_cores}:}
|
||||||
|
-
|
||||||
|
[sysctl]
|
||||||
|
kernel.hung_task_timeout_secs = 600
|
||||||
|
kernel.nmi_watchdog = 0
|
||||||
|
@@ -68,4 +66,4 @@ priority=10
|
||||||
|
initrd_remove_dir=True
|
||||||
|
initrd_dst_img=tuned-initrd.img
|
||||||
|
initrd_add_dir=${tmpdir}
|
||||||
|
-cmdline_cpu_part=+nohz=on${cmd_isolcpus} nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} tuned.non_isolcpus=${not_isolated_cpumask} intel_pstate=disable nosoftlockup
|
||||||
|
+cmdline_cpu_part=+nohz=on nohz_full=${isolated_cores} rcu_nocbs=${isolated_cores} tuned.non_isolcpus=${not_isolated_cpumask} intel_pstate=disable nosoftlockup
|
@ -0,0 +1,83 @@
|
|||||||
|
diff --git a/profiles/latency-performance/tuned.conf b/profiles/latency-performance/tuned.conf
|
||||||
|
index d200b5c..877229f 100644
|
||||||
|
--- a/profiles/latency-performance/tuned.conf
|
||||||
|
+++ b/profiles/latency-performance/tuned.conf
|
||||||
|
@@ -32,3 +32,16 @@ vm.dirty_background_ratio=3
|
||||||
|
# 100 tells the kernel to aggressively swap processes out of physical memory
|
||||||
|
# and move them to swap cache
|
||||||
|
vm.swappiness=10
|
||||||
|
+
|
||||||
|
+[scheduler]
|
||||||
|
+# ktune sysctl settings for rhel6 servers, maximizing i/o throughput
|
||||||
|
+#
|
||||||
|
+# Minimal preemption granularity for CPU-bound tasks:
|
||||||
|
+# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)
|
||||||
|
+sched_min_granularity_ns = 3000000
|
||||||
|
+sched_wakeup_granularity_ns = 4000000
|
||||||
|
+
|
||||||
|
+# The total time the scheduler will consider a migrated process
|
||||||
|
+# "cache hot" and thus less likely to be re-migrated
|
||||||
|
+# (system default is 500000, i.e. 0.5 ms)
|
||||||
|
+sched_migration_cost_ns = 5000000
|
||||||
|
diff --git a/profiles/sap-hana/tuned.conf b/profiles/sap-hana/tuned.conf
|
||||||
|
index aeecf53..8dcee57 100644
|
||||||
|
--- a/profiles/sap-hana/tuned.conf
|
||||||
|
+++ b/profiles/sap-hana/tuned.conf
|
||||||
|
@@ -20,3 +20,7 @@ kernel.numa_balancing = 0
|
||||||
|
vm.dirty_ratio = 40
|
||||||
|
vm.dirty_background_ratio = 10
|
||||||
|
vm.swappiness = 10
|
||||||
|
+
|
||||||
|
+[scheduler]
|
||||||
|
+sched_min_granularity_ns = 3000000
|
||||||
|
+sched_wakeup_granularity_ns = 4000000
|
||||||
|
diff --git a/profiles/throughput-performance/tuned.conf b/profiles/throughput-performance/tuned.conf
|
||||||
|
index 62a7322..7c55fb2 100644
|
||||||
|
--- a/profiles/throughput-performance/tuned.conf
|
||||||
|
+++ b/profiles/throughput-performance/tuned.conf
|
||||||
|
@@ -63,9 +63,31 @@ vm.swappiness=10
|
||||||
|
# on older kernels
|
||||||
|
net.core.somaxconn=>2048
|
||||||
|
|
||||||
|
+[scheduler]
|
||||||
|
+# ktune sysctl settings for rhel6 servers, maximizing i/o throughput
|
||||||
|
+#
|
||||||
|
+# Minimal preemption granularity for CPU-bound tasks:
|
||||||
|
+# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)
|
||||||
|
+sched_min_granularity_ns = 10000000
|
||||||
|
+
|
||||||
|
+# SCHED_OTHER wake-up granularity.
|
||||||
|
+# (default: 1 msec# (1 + ilog(ncpus)), units: nanoseconds)
|
||||||
|
+#
|
||||||
|
+# This option delays the preemption effects of decoupled workloads
|
||||||
|
+# and reduces their over-scheduling. Synchronous workloads will still
|
||||||
|
+# have immediate wakeup/sleep latencies.
|
||||||
|
+sched_wakeup_granularity_ns = 15000000
|
||||||
|
+
|
||||||
|
# Marvell ThunderX
|
||||||
|
[sysctl.thunderx]
|
||||||
|
type=sysctl
|
||||||
|
uname_regex=aarch64
|
||||||
|
cpuinfo_regex=${thunderx_cpuinfo_regex}
|
||||||
|
kernel.numa_balancing=0
|
||||||
|
+
|
||||||
|
+# AMD
|
||||||
|
+[scheduler.amd]
|
||||||
|
+type=scheduler
|
||||||
|
+uname_regex=x86_64
|
||||||
|
+cpuinfo_regex=${amd_cpuinfo_regex}
|
||||||
|
+sched_migration_cost_ns=5000000
|
||||||
|
diff --git a/profiles/virtual-host/tuned.conf b/profiles/virtual-host/tuned.conf
|
||||||
|
index 5301d9f..74a5fb0 100644
|
||||||
|
--- a/profiles/virtual-host/tuned.conf
|
||||||
|
+++ b/profiles/virtual-host/tuned.conf
|
||||||
|
@@ -14,3 +14,9 @@ vm.dirty_background_ratio = 5
|
||||||
|
[cpu]
|
||||||
|
# Setting C3 state sleep mode/power savings
|
||||||
|
force_latency=cstate.id_no_zero:3|70
|
||||||
|
+
|
||||||
|
+[scheduler]
|
||||||
|
+# The total time the scheduler will consider a migrated process
|
||||||
|
+# "cache hot" and thus less likely to be re-migrated
|
||||||
|
+# (system default is 500000, i.e. 0.5 ms)
|
||||||
|
+sched_migration_cost_ns = 5000000
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue