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