sysadmin · July 10, 2026 · 13 min read

Kernel tuning.
sysctl drop-ins and tuned profiles.

dbadmin1 wants two kernel parameters raised and made permanent, and the throughput-performance tuned profile applied, plus a way to see what tuned changed underneath.

// what we’re getting into
  1. The ticket
  2. Concept review. sysctl and tuned-adm.
  3. Read the current values
  4. Set persistent values in sysctl.d
  5. Apply and verify a tuned profile
  6. When a drop-in and tuned collide
  7. Exam questions
  8. Final checklist: confirm everything works

dbadmin1 is tuning the DB tier and hands you two exact numbers: raise net.core.somaxconn, the TCP listen queue, to 4096, and pin vm.swappiness at 10, the value from the emergency-swap ticket, this time confirming it actually survives a reboot. Both belong in /etc/sysctl.d/. Then switch the box to the throughput-performance tuned profile so the kernel favors sustained throughput, and show what that profile quietly changes underneath.

Two things trip people. A value set with sysctl -w is live immediately but gone at the next reboot, so persistence means a file, not a flag. And a sysctl drop-in and a tuned profile can both reach for the same knob, so when they disagree you have to know the drop-in wins.

The ticket

bash
sudo dnf install -y tuned
sudo systemctl enable --now tuned
tuned-adm active

Concept review. sysctl and tuned-adm.

bash
man sysctl
man tuned-adm
sysctl
sysctl KEY              read the current runtime value
sysctl -w KEY=VAL       set at runtime, gone after reboot
/etc/sysctl.d/*.conf    persistent settings, loaded at boot
sysctl --system         reload all sysctl.d files now
tuned-adm
tuned-adm list          available profiles
tuned-adm active        the currently applied profile
tuned-adm profile NAME  switch profile, persists across reboot
tuned-adm verify        confirm the live settings match the profile

Common profiles: balanced is the default, throughput-performance is for servers under sustained load, latency-performance for low latency, and virtual-guest for VMs.

Read the current values

bash
sysctl net.core.somaxconn
sysctl vm.swappiness
sysctl -a 2>/dev/null | grep -E 'somaxconn|swappiness'

Set persistent values in sysctl.d

Write a drop-in rather than editing /etc/sysctl.conf, which is effectively deprecated. The 99- prefix makes the file load last so it wins over earlier defaults. Then apply without a reboot.

bash
sudo tee /etc/sysctl.d/99-server1-db-tuning.conf << 'EOF'
# DB tier tuning
vm.swappiness = 10
net.core.somaxconn = 4096
EOF

sudo sysctl --system    # shows which file each value came from
sysctl net.core.somaxconn vm.swappiness

Apply and verify a tuned profile

Switching a profile is persistent by design, stored in /etc/tuned/active_profile and reapplied at boot, so there is no separate persistence step. verify confirms the live system still matches the profile.

bash
tuned-adm list
sudo tuned-adm profile throughput-performance
tuned-adm active
sudo tuned-adm verify

# see what the profile actually sets
cat /usr/lib/tuned/throughput-performance/tuned.conf

When a drop-in and tuned collide

If tuned-adm verify ever fails, something is overriding the profile, and it is usually one of your own /etc/sysctl.d/ files. For sysctl values, the drop-in wins over tuned. Decide which value you actually want and keep them consistent.

bash
sudo tuned-adm verify
# if it fails, check which sysctl keys collide with your 99- file

Exam questions

Write the command first.

Q1. Show the current value of net.ipv4.ip_forward.

Q2. Persistently set vm.swappiness to 5 and kernel.pid_max to 4194304, and apply without rebooting.

Q3. Switch the tuned profile to latency-performance so it persists, and verify it was applied.

Answers.

bash
# A1
sysctl net.ipv4.ip_forward
# A2
sudo tee /etc/sysctl.d/99-tuning.conf << 'EOF'
vm.swappiness = 5
kernel.pid_max = 4194304
EOF
sudo sysctl --system
# A3
sudo tuned-adm profile latency-performance
tuned-adm active; sudo tuned-adm verify

Final checklist: confirm everything works

If every check passes, the ticket is done.

bash
# 1. drop-in exists with both values active
sysctl net.core.somaxconn vm.swappiness

# 2. tuned profile is throughput-performance and verifies
tuned-adm active; sudo tuned-adm verify

# 3. all three exam commands written from scratch
# 4. tracker entry checked off

Reply to dbadmin1: sysctl drop-in at /etc/sysctl.d/99-server1-db-tuning.conf with swappiness 10 and somaxconn 4096. tuned profile is throughput-performance and persistent, verified with tuned-adm verify.

next post
SEV-1: recovering a lost root password with rd.break