Scratchbook

Citroen macerası

Ceph OSD Node Network Tuning Checklist

1. Baseline and Topology Validation

ethtool <iface>
ethtool -S <iface> | egrep 'drop|error'

2. Jumbo Frames (If Enabled)

ping -M do -s 8972 <peer-ip>

Note: Enable only if the entire network path supports jumbo frames.


3. Kernel Network Buffer Tuning

Create or edit:

/etc/sysctl.d/99-ceph-network.conf

net.core.rmem_max = 268435456
net.core.wmem_max = 268435456
net.core.rmem_default = 67108864
net.core.wmem_default = 67108864

net.ipv4.tcp_rmem = 4096 87380 134217728
net.ipv4.tcp_wmem = 4096 65536 134217728

net.core.netdev_max_backlog = 250000
net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_tw_reuse = 1

Apply:

sysctl --system

Checklist:


4. Increase NIC Queue Length


5. Ring Buffer Size

Check current values:

ethtool -g <iface>

Set to maximum supported:

ethtool -G <iface> rx 4096 tx 4096

6. Multi-Queue and IRQ Balancing

ls -d /sys/class/net/<iface>/queues/tx-*
systemctl enable irqbalance
systemctl start irqbalance
cat /proc/interrupts

Optional for advanced setups:


7. Offloading Features

Check current settings:

ethtool -k <iface>

Recommended:

Disable LRO if required:

ethtool -K <iface> lro off

8. Bonding (If Used)

Example:

xmit_hash_policy=layer3+4

Validate:

cat /proc/net/bonding/bond0

9. Ceph Network Configuration

In ceph.conf:

ms_bind_ipv4 = true
ms_bind_ipv6 = false
ms_async_op_threads = 3

Check monitor configuration:

ceph mon dump

10. NUMA Awareness (High-Core Systems)

numactl --hardware

11. Monitor for Drops and Saturation

Live monitoring:

sar -n DEV 1
iftop
nload

12. Validation After Changes

ceph -s
ceph osd perf
rados bench -p <pool> 60 write

13. Optional Advanced Tuning (25G/40G/100G)

sysctl -w net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr