Für meinen Homeserver habe ich mich ein bisschen mit den möglichen und sinnvollen Tuning Optionen für Software Raid unter Linux beschäftigt. Dabei ist bei mir folgendes Skript rausgekommen, dass ich nach dem Boot ausführe:
# Get Arrays and physical Disks for active Raid5 Volumes
ARRAYS=""
DISKS=""
for field in `cat /proc/mdstat | grep "active raid5"`
do
if [[ "x${field:0:2}x" == "xmdx" ]]
then
ARRAYS="$ARRAYS $field"
elif [[ "x${field:0:2}x" == "xsdx" ]]
then
DISKS="$DISKS ${field:0:3}"
fi
done
# Changes on physical Devices
for disk in $DISKS
do
#Set read-ahead to 16MB
blockdev --setra 16384 /dev/$disk
#Device Queue Tuning
echo 1024 > /sys/block/$disk/queue/read_ahead_kb
echo 256 > /sys/block/$disk/queue/nr_requests
#Disable NCQ
echo 1 > /sys/block/$disk/device/queue_depth
done
# Changes on Raid Arrays
for array in $ARRAYS
do
#Set read-ahead to 64MB
blockdev --setra 64536 /dev/$array
#Increase stripe-cache size
echo 16384 > /sys/block/$array/md/stripe_cache_size
done
Die einzelnen Zahlenwerte habe ich für mein Setup getestet und können variieren.
IT Enthusiast with focus on linux, vmware, container technologies