Portál AbcLinuxu, 6. listopadu 2025 18:00
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;
fi
no 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.