[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: swapoff a ripresa da ibernazione



Il 17/08/2016 10:45, tarqui@aruba.it ha scritto:
> Il 16/08/2016 23:28, Davide Prina ha scritto:
>> prova a vedere se questa soluzione automatica può aiutarti
>> https://help.ubuntu.com/community/SwapFaq#Empty_Swap
> a parte il controllo di ram libera la soluzione è poi la stessa che
> proponevo io: swapoff && swapon.
> io pensavo più che altro di metterla in un cron, ma ero incerto
> sull'intervallo. copiando quest'idea posso usare un intervallo molto
> breve, tanto se non c'è ram a sufficienza non eseguo nulla.
> ah, il controllo -lt va bene se uso swappiness 0, altrimenti bisogna
> tenerne conto. va corretto ricaricando i dati solo se non fanno superare
> alla ram il valore di swappiness impostato. altrimenti si va in loop
> come da te accennato.
di seguito lo script corretto (imho) che si può mettere in cron ad
esempio ogni minuto (* * * * *). se può essere utile.

$ cat ~/bin/swapclean.sh
#!/bin/sh

memtot=$(LC_ALL=C free  | awk '/Mem:/ {print $2}')
memused=$(LC_ALL=C free  | awk '/Mem:/ {print $3}')
swapused=$(LC_ALL=C free | awk '/Swap:/ {print $3}')

if [ $swapused -eq 0 ] ; then
  echo "no swap in use. nothing to do." >&2
  exit 1
fi

swappiness=$(cat /proc/sys/vm/swappiness)
memstable=$(($memtot * $swappiness / 100))

nextused=$(($memused + $swapused))

if [ $nextused -gt $memstable ]; then
    echo "not enough RAM to write swap back. nothing to do." >&2
    exit 1
fi

echo "enough RAM to write wap back. let's do it..."
nice -n 20 swapoff -a &&
swapon -a
echo "    ...done."


Reply to: