UEK-Specific Optimizations

Linux

Audience
Public
Product
FlashBlade
FlashArray
Technology Integrations
Linux
Source Type
Documentation

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