Skip to content

Instantly share code, notes, and snippets.

Last active June 13, 2022 01:15
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
Tuned you Linux System with TunedAdm

Tuned you Linux System with TunedAdm


apt install tuned -y
systemctl start tuned            
systemctl enable tuned    
systemctl status tuned    

Check Tuned

tuned-adm active
tuned-adm list

Activate a Profile

tuned-adm profile profile_name
tuned-adm recommend


tuned-adm off

Add Profile

You can check any profile template in here

cd /usr/lib/tuned/
mkdir new_profile
nano tuned.conf

for example, this is tuned for PostgreSQL

# tuned configuration for PostgreSQL servers

summary=Optimize for PostgreSQL server

# The alternation of CPU bound load and disk IO operations of postgresql
# db server suggest CPU to go into powersave mode.
# Explicitly disable deep c-states to reduce latency on OLTP workloads.



# The dirty_background_ratio and dirty_ratio controls percentage of memory
# that file system cache have to fill with dirty data before kernel will
# will start to flush data to disks. The default values are 10% and 20%
# accordingly. On a systems with a big amount of memory this values can
# be tens of gigabytes and produce IO spikes when PostgreSQL server writes
# checkpoints.
# Keep this values reasonable small - about size of RAID controller write-back
# cache size (typcal 512MB - 2GB).
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 67108864
vm.dirty_bytes = 536870912

# 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

# The autogroup feature of the CFS
# (system default is 1, e.q enabled)
kernel.sched_autogroup_enabled = 0

# 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

# 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 = 50000000
  • Check List
tuned-adm list
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment