55 lines
1.6 KiB
Bash
55 lines
1.6 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Alpine Linux optimization script for Archipelago
|
||
|
|
# Optimizes system settings for container workloads
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
echo "⚡ Optimizing Alpine Linux for container workloads..."
|
||
|
|
|
||
|
|
# CPU Governor - set to performance for better container performance
|
||
|
|
if [ -f /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then
|
||
|
|
echo "performance" > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 2>/dev/null || true
|
||
|
|
fi
|
||
|
|
|
||
|
|
# I/O Scheduler - use deadline or none for SSDs
|
||
|
|
if command -v lsblk >/dev/null 2>&1; then
|
||
|
|
for disk in $(lsblk -d -o NAME -n); do
|
||
|
|
if [ -f "/sys/block/$disk/queue/scheduler" ]; then
|
||
|
|
# Prefer none (for NVMe) or deadline (for SATA SSD)
|
||
|
|
if grep -q "none" "/sys/block/$disk/queue/scheduler"; then
|
||
|
|
echo none > "/sys/block/$disk/queue/scheduler" 2>/dev/null || true
|
||
|
|
elif grep -q "deadline" "/sys/block/$disk/queue/scheduler"; then
|
||
|
|
echo deadline > "/sys/block/$disk/queue/scheduler" 2>/dev/null || true
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Increase file descriptor limits
|
||
|
|
cat >> /etc/security/limits.conf <<EOF
|
||
|
|
* soft nofile 65536
|
||
|
|
* hard nofile 65536
|
||
|
|
root soft nofile 65536
|
||
|
|
root hard nofile 65536
|
||
|
|
EOF
|
||
|
|
|
||
|
|
# Optimize network settings for container networking
|
||
|
|
cat >> /etc/sysctl.conf <<EOF
|
||
|
|
|
||
|
|
# Container networking optimizations
|
||
|
|
net.core.somaxconn = 4096
|
||
|
|
net.ipv4.tcp_max_syn_backlog = 4096
|
||
|
|
net.core.netdev_max_backlog = 5000
|
||
|
|
net.ipv4.ip_local_port_range = 1024 65535
|
||
|
|
|
||
|
|
# Container storage optimizations
|
||
|
|
vm.swappiness = 10
|
||
|
|
vm.dirty_ratio = 15
|
||
|
|
vm.dirty_background_ratio = 5
|
||
|
|
EOF
|
||
|
|
|
||
|
|
# Apply sysctl settings
|
||
|
|
sysctl -p >/dev/null 2>&1 || true
|
||
|
|
|
||
|
|
echo "✅ Alpine optimization complete!"
|