UEK Kernel Parameters
UEK includes optimizations, but you can tune further:
sudo tee /etc/sysctl.d/90-uek-nvme-tcp.conf > /dev/null <<'EOF'
# UEK-specific NVMe optimizations
# (UEK has better defaults than RHCK, these are additional tuning)
# Network performance
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
# Network stack
net.core.netdev_max_backlog = 30000
net.core.somaxconn = 4096
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_sack = 1
# VM tuning for storage
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.swappiness = 10
# NVMe-specific (UEK R7+)
# These are typically good defaults in UEK, but can be tuned
# vm.nvme_core.multipath = Y (set via kernel parameter instead)
EOF
# Apply settings
sudo sysctl -p /etc/sysctl.d/90-uek-nvme-tcp.conf
UEK I/O Scheduler
UEK uses better default I/O schedulers:
# Check current scheduler (should be 'none' for NVMe)
cat /sys/block/nvme0n1/queue/scheduler
# UEK typically sets this correctly, but verify
# If not 'none', set it:
echo none | sudo tee /sys/block/nvme*/queue/scheduler
# Make persistent with udev
sudo tee /etc/udev/rules.d/60-nvme-scheduler.rules > /dev/null <<'EOF'
ACTION=="add|change", KERNEL=="nvme[0-9]n[0-9]", ATTR{queue/scheduler}="none"
EOF
# Reload udev
sudo udevadm control --reload-rules
sudo udevadm trigger
CPU Frequency Scaling
UEK benefits from performance governor:
# Install cpupower
sudo dnf install -y kernel-uek-tools
# Set performance governor
sudo cpupower frequency-set -g performance
# Make persistent
echo 'CPUPOWER_START_OPTS="frequency-set -g performance"' | \
sudo tee /etc/sysconfig/cpupower
# Enable service
sudo systemctl enable --now cpupower