Portál AbcLinuxu, 10. května 2025 11:24
cat /proc/meminfo
#!/bin/bash # pro 32MB na swapu: THRESHOLD=32768 SERVICES="mysql apache2" if [ "`A=0; for B in $(cat /proc/swaps | tac | head -n -1 | awk '{print $4;}'); do A=$(($A+$B)) done echo $A`" -ge "$THRESHOLD" ] ; then for A in $SERVICES; do /etc/init.d/$A stop done SWAPS="$(cat /proc/swaps | tac | head -n -1 | awk '{print $1;}')" for A in $SWAPS; do /sbin/swapoff $A done for A in $SWAPS; do /sbin/swapon $A done for A in $SERVICES; do /etc/init.d/$A start done fi
#!/bin/bash unused_swap_size=`cat /proc/meminfo | grep "SwapFree" | awk {'print $2'}`; if [ $unused_swap_size -eq 0 ]; then echo "full swap mem..."; echo "reboot"; reboot; fino a dejme tomu ze script pojmenujete restart_when_swap_full tak do cronu zadate test co 1 minutu
*/1 * * * * nekde_na_hdd/restart_when_swap_full 1> /dev/null
/proc/sys/vm/swappiness
.. a nastavte tamější hodnotu třeba na 10 (rozsah 0-100, čím menší hodnota, tím více systém preferuje čištění disk cache před swapováním).if [ $unused_swap_size -le cislo ]; then ...kde
cislo
je třeba 5% velikosti swapu (i méně, podle rychlosti plnění)./etc/init.d/program stop
) provést něco jako swapoff /dev/partisna && swapon /dev/partisna
a pak jej zase spustit, jak už bylo psáno výše...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.