1
0
Fork 0

profiles: various updates according to feedback from performance team

Related: rhbz#922068

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
This commit is contained in:
Jaroslav Škarvada 2013-11-06 10:39:01 +01:00
parent 1e910ae940
commit ef339e1b17
5 changed files with 126 additions and 40 deletions

View file

@ -28,9 +28,19 @@ tuned-adm \- commandline tool for switching between different tuning profiles
.BR [ " list ", " active ", " profile <profile> ", " off " ]
.br
.SH DESCRIPTION
This command line utility allows user to switch between user definable tuning profiles. Several predefined profiles are already included. You can even create your own profile, either based on one of the existing ones by copying it or make a completely new one. The distribution provided profiles are stored in subdirectories below /usr/lib/tuned and the user defined profiles in subdirectories below /etc/tuned. If there are same profiles on both places, User defined profiles have precedence.
This command line utility allows user to switch between user definable tuning
profiles. Several predefined profiles are already included. You can even
create your own profile, either based on one of the existing ones by copying
it or make a completely new one. The distribution provided profiles are stored
in subdirectories below /usr/lib/tuned and the user defined profiles in
subdirectories below /etc/tuned. If there are same profiles on both places,
user defined profiles have precedence.
The power saving profiles contain settings that are typically not enabled by default as they will noticeably impact the latency/performance of your system as opposed to the power saving mechanisms that are enabled by default. On the other hand the performance profiles disable the additional power saving mechanisms of tuned as they would negatively impact throughput or latency.
The power saving profiles contain settings that are typically not enabled by
default as they will noticeably impact the latency/performance of your system
as opposed to the power saving mechanisms that are enabled by default. On the
other hand the performance profiles disable the additional power saving
mechanisms of tuned as they would negatively impact throughput or latency.
.SH "OPTIONS"
@ -45,11 +55,17 @@ Show current active profile.
.TP
.B profile <profile>
Switches to the given profilename. If none is given or no valid one is given the command gracefully exits without performing any operation.
Switches to the given profilename. If none is given or no valid one is given
the command gracefully exits without performing any operation.
.TP
.B recommend
Recommend profile suitable for your system. Currently only static detection is implemented - it decides according to data in /etc/system-release-cpe and virt-what output. The rules for autodetection are defined in recommend.conf in profile directory. They can be overriden by user by putting the recommend.conf into /etc/tuned. The default rules recommends profiles targeted to the best performance or balanced profile if unsure.
Recommend profile suitable for your system. Currently only static detection is
implemented - it decides according to data in /etc/system-release-cpe and
virt-what output. The rules for autodetection are defined in recommend.conf in
profile directory. They can be overriden by user by putting the recommend.conf
into /etc/tuned. The default rules recommends profiles targeted to the best
performance or balanced profile if unsure.
.TP
.B off
@ -60,58 +76,100 @@ At the moment we're providing the following pre defined profiles:
.TP
.BI "balanced"
It is the default profile. It provides balanced power saving and performance. At the moment it enables CPU and disk plugins of tuned and it makes sure the ondemand governor is active. It also enables AC97 audio power saving or (it depends on your system) HDA-Intel power savings (with 10 seconds timeout). In case your system contains supported Radeon graphics card (with enabled KMS) it configures it to automatic power saving.
It is the default profile. It provides balanced power saving and performance.
At the moment it enables CPU and disk plugins of tuned and it makes sure the
ondemand governor is active (if supported by the current cpufreq driver). It
sets the CPU energy performance bias to normal. It also enables AC97 audio
power saving or (it depends on your system) HDA-Intel power savings with 10
seconds timeout. In case your system contains supported Radeon graphics card
(with enabled KMS) it configures it to automatic power saving.
.TP
.BI "powersave"
Maximal power saving, at the moment it enables USB autosuspend (in case environment variable USB_AUTOSUSPEND is set to 1), enables ALPM power saving for SATA host adapters, enables WiFi power saving, enables multi core power savings scheduler for low wakeup systems and makes sure the ondemand governor is active. It also enables AC97 audio power saving or (it depends on your system) HDA-Intel power savings (with 10 seconds timeout). In case your system contains supported Radeon graphics card (with enabled KMS) it configures it to automatic power saving. On Asus Eee PCs dynamic Super Hybrid Engine is enabled.
Maximal power saving, at the moment it enables USB autosuspend (in case
environment variable USB_AUTOSUSPEND is set to 1), enables ALPM power saving
for SATA host adapters, enables WiFi power saving, enables multi core power
savings scheduler for low wakeup systems and makes sure the ondemand governor
is active (if supported by the current cpufreq driver). It sets the CPU energy
performance bias to powersave. It also enables AC97 audio power saving or (it
depends on your system) HDA-Intel power savings (with 10 seconds timeout).
In case your system contains supported Radeon graphics card (with enabled KMS)
it configures it to automatic power saving. On Asus Eee PCs dynamic Super
Hybrid Engine is enabled.
.TP
.BI throughput-performance
Profile for typical throughput performance tuning. Disables power saving mechanisms and enables sysctl settings that improve the throughput performance of your disk and network IO and switches to the deadline scheduler. CPU governor is set to performance and disk readahead values are increased.
Profile for typical throughput performance tuning. Disables power saving
mechanisms and enables sysctl settings that improve the throughput performance
of your disk and network IO. CPU governor is set to performance and CPU energy
performance bias is set to performance. Disk readahead values are increased.
.TP
.BI latency-performance
Profile for low latency performance tuning. Disables power saving mechanisms and enables deadline IO scheduler. CPU governor is set to performance and locked to the low C states (by PM QoS).
Profile for low latency performance tuning. Disables power saving mechanisms.
CPU governor is set to performance andlocked to the low C states (by PM QoS).
CPU energy performance bias to performance.
.TP
.BI "desktop"
Profile optimized for desktops based on balanced profile. It additionaly
enables scheduler autogroups for better response of interactive applications.
.TP
.BI "virtual-guest"
Profile optimized for virtual guests based on throughput-performance profile. It additionally decreases virtual memory swapiness. It doesn't disable disk barriers.
Profile optimized for virtual guests based on throughput-performance profile.
It additionally decreases virtual memory swapiness and increases dirty_ratio
settings.
.TP
.BI "virtual-host"
Profile optimized for virtual hosts based on throughput-performance profile. It additionally decreases virtual memory swapiness and enables more aggresive writeback of dirty pages.
Profile optimized for virtual hosts based on throughput-performance profile.
It additionally enables more aggresive writeback of dirty pages.
.SH PREDEFINED COMPAT PROFILES
We are also providing so called "compat" profiles that are here mostly for backward compatibility with tuned 1.0. They are oriented to more specific scenarios.
We are also providing so called "compat" profiles that are here mostly for
backward compatibility with tuned 1.0. They are oriented to more specific
scenarios.
.TP
.BI "default"
It is the lowest of the available profiles in regard to power saving and only enables CPU and disk plugins of tuned.
It is the lowest of the available profiles in regard to power saving and only
enables CPU and disk plugins of tuned.
.TP
.BI "desktop-powersave"
A power saving profile directed at desktop systems. Enables ALPM power saving for SATA host adapters as well as the CPU, ethernet and disk plugins of tuned.
A power saving profile directed at desktop systems. Enables ALPM power saving
for SATA host adapters as well as the CPU, ethernet and disk plugins of tuned.
.TP
.BI server-powersave
A power saving profile directed at server systems. Enables ALPM power saving for SATA host adapters, and activates the CPU and disk plugins of tuned.
A power saving profile directed at server systems. Enables ALPM power saving
for SATA host adapters, and activates the CPU and disk plugins of tuned.
.TP
.BI laptop-ac-powersave
Medium power saving profile directed at laptops running on AC. Enables ALPM power saving for SATA host adapters, WiFi power saving as well as CPU, ethernet and disk plugins of tuned.
Medium power saving profile directed at laptops running on AC. Enables ALPM
power saving for SATA host adapters, WiFi power saving as well as CPU,
ethernet and disk plugins of tuned.
.TP
.BI laptop-battery-powersave
Strong power saving profile directed at laptops running on battery. Currently an alias to powersave profile.
Strong power saving profile directed at laptops running on battery. Currently
an alias to powersave profile.
.TP
.BI "spindown-disk"
Strong power saving profile directed at machines with classic HDDs. It enables aggressive disk spin-down. Disk writeback values are increased and disk swappiness is lowered. Log syncing is disabled. All partitions are remounted with 'noatime' option. All tuned plugins are disabled.
Strong power saving profile directed at machines with classic HDDs. It enables
aggressive disk spin-down. Disk writeback values are increased and disk
swappiness is lowered. Log syncing is disabled. All partitions are remounted
with 'noatime' option. All tuned plugins are disabled.
.TP
.BI "enterprise-storage"
Server profile for high disk throughput performace tuning. Disables power saving mechanisms and enables deadline IO scheduler. Enables hugepages and disables disk barriers. Disk readahead values are increased. CPU governor is set to performance.
Server profile for high disk throughput performace tuning. Disables power
saving mechanisms and enables deadline IO scheduler. Enables hugepages and
disables disk barriers. Disk readahead values are increased. CPU governor is
set to performance.
.SH "FILES"
.nf

View file

@ -11,7 +11,35 @@ min_perf_pct=100
[vm]
transparent_hugepages=never
# devices sd*,cciss*,dm-*,vd*
[disk]
devices=sd*,cciss*,dm-*,vd*
elevator=deadline
[sysctl]
# 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)
kernel.sched_min_granularity_ns=10000000
# If a workload mostly uses anonymous memory and it hits this limit, the entire
# working set is buffered for I/O, and any more write buffering would require
# swapping, so it's time to throttle writes until I/O can catch up. Workloads
# that mostly use file mappings may be able to use even higher values.
#
# The generator of dirty data starts writeback at this percentage (system default
# is 20%)
vm.dirty_ratio=10
# Start background writeback (via writeback threads) at this percentage (system
# default is 10%)
vm.dirty_background_ratio=3
# The swappiness parameter controls the tendency of the kernel to move
# processes out of physical memory and onto the swap disk.
# 0 tells the kernel to avoid swapping processes out of physical memory
# for as long as possible
# 100 tells the kernel to aggressively swap processes out of physical memory
# and move them to swap cache
vm.swappiness=10
# 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)
kernel.sched_migration_cost_ns=5000000

View file

@ -10,10 +10,7 @@ min_perf_pct=100
[vm]
transparent_hugepages=always
# devices sd*,cciss*,dm-*,vd*
[disk]
devices=sd*,cciss*,dm-*,vd*
elevator=deadline
readahead=4096
[sysctl]
@ -38,11 +35,11 @@ kernel.sched_wakeup_granularity_ns = 15000000
#
# The generator of dirty data starts writeback at this percentage (system default
# is 20%)
vm.dirty_ratio = 40
vm.dirty_ratio = 10
# Start background writeback (via writeback threads) at this percentage (system
# default is 10%)
#vm.dirty_background_ratio = 15
vm.dirty_background_ratio = 3
# PID allocation wrap value. When the kernel's next PID value
# reaches this value, it wraps back to a minimum PID value.
@ -53,3 +50,10 @@ vm.dirty_ratio = 40
# 65536, for 4096 cpus, 4194304 (which is the upper limit possible).
#kernel.pid_max = 65536
# The swappiness parameter controls the tendency of the kernel to move
# processes out of physical memory and onto the swap disk.
# 0 tells the kernel to avoid swapping processes out of physical memory
# for as long as possible
# 100 tells the kernel to aggressively swap processes out of physical memory
# and move them to swap cache
vm.swappiness=10

View file

@ -6,6 +6,15 @@
include=throughput-performance
[sysctl]
# If a workload mostly uses anonymous memory and it hits this limit, the entire
# working set is buffered for I/O, and any more write buffering would require
# swapping, so it's time to throttle writes until I/O can catch up. Workloads
# that mostly use file mappings may be able to use even higher values.
#
# The generator of dirty data starts writeback at this percentage (system default
# is 20%)
vm.dirty_ratio = 30
# Filesystem I/O is usually much more efficient than swapping, so try to keep
# swapping low. It's usually safe to go even lower than this on systems with
# server-grade storage.

View file

@ -5,20 +5,7 @@
[main]
include=throughput-performance
[vm]
transparent_hugepages=always
[sysctl]
# Filesystem I/O is usually much more efficient than swapping, so try to keep
# swapping low. It's usually safe to go even lower than this on systems with
# server-grade storage.
vm.swappiness = 10
#
# The generator of dirty data starts writeback at this percentage (system default
# is 20%)
vm.dirty_ratio = 10
# Start background writeback (via writeback threads) at this percentage (system
# default is 10%)
vm.dirty_background_ratio = 5