Inserire comando modifica swappiness all'avvio

Ritratto di mikronimo

Sto' usando da un certo tempo una modifica del file di swappiness, che mi ha risolto lo stallo del pc in caso si superi la soglia di circa il 60% della ram; ora il pc (salvo che il processore non sia comunque molto carico), non si impalla con la swap dell'hard disk, ma il problema è che ogni volta che riavvio la swappness mi torna al valore di defalut e devo ricreare la modifica; questa la procedura che uso:

[mikronimo@localhost ~]$ cat /proc/sys/vm/swappiness --> comando per vedere il valore attuale
0 --> valore indicato al riavvio
[mikronimo@localhost ~]$ su
password:
[root@localhost mikronimo]# echo 90 > /proc/sys/vm/swappiness --> comando che imposta la swappiness al 90%

alla fine della quale se anche apro programmi in serie e pesanti, il pc lavora benino e alla chiusura di tutti i programmi, la ram usata di base (cioé con solo dolphin aperto) è molto minore di prima della modifica (da circa 350 Mb, a circa 220, su un totale di 1 Gb; immagino che dipenda anche dall'aver installato a suo tempo zram, che comprime la ram).

DOMANDA: si può creare uno script e se si, come e dove va inserito, per rendere la swappness modificata all'avvio senza agire da riga di comando dopo il riavvio? I comandi sono facili, ma spesso me ne dimentico e mi trovo con il pc inchiodato e per chiudere i programmi di troppo ci vuole parecchio...
Come sempre, in attesa e ciao.

Ritratto di zafran

Puoi mettere i comandi in un file .sh (e renderlo eseguibile).
Se usi solo kde lo richiami da ~/.kde/Autostart.
Sennò lo metti initrc.
Se non è chiaro o non ci riesci te lo scrivo io nel pomeriggio.

Ritratto di patel

il comando echo 90 > /proc/sys/vm/swappines modifica il file /proc/sys/vm/swappines, sei certo che al riavvio sia necessario ripeterlo, prova a leggerne il contenuto
cat /proc/sys/vm/swappines

Ritratto di mikronimo

patel wrote:
il comando echo 90 > /proc/sys/vm/swappines modifica il file /proc/sys/vm/swappines, sei certo che al riavvio sia necessario ripeterlo, prova a leggerne il contenuto
cat /proc/sys/vm/swappines

Si, sono sicuro; infatti me ne resi conto quando dopo la prima volta che feci la modifica, il pc si inchiodava e controllando con il primo comando cat ecc., mi restituiva "0"; ora infatti (ho controllato con dolphin, aprendolo), che la modifica è stata fatta c'è scritto "90", ma prima era "0".

Ritratto di mikronimo

zafran wrote:
Puoi mettere i comandi in un file .sh (e renderlo eseguibile).
Se usi solo kde lo richiami da ~/.kde/Autostart.
Sennò lo metti initrc.
Se non è chiaro o non ci riesci te lo scrivo io nel pomeriggio.

controllando sia nella /home che nella root trovo kde4 e initrd; dentro a kde4 c'è già un autostart, che al suo interno contiene il file "bludevil-monolithic" e initrd contiene invece un file txt che avvisa di non cancellare il file initrd stesso; provo ad ipotizzare quello che ho capito dovrei fare, altrimenti, dammi tu le indicazioni:

1) creo un file txt (che chiamo "modifica swappiness"), con estensione .sh, in cui inserisco il comando: "echo 90 > /proc/sys/vm/swappiness" (nel file senza virgolette, che uso qui solo per evidenziarlo); salvo;
2) con il tasto destro vado ad aprire le proprietà di "modifica swappiness" e clicco sulla casella che lo rende eseguibile;
3) inserisco il file nella cartella autostart, che stà in kde4, immagino aprendola come root (sempre dal menu del tasto destro...);
4) riavvio e prego...

Ritratto di zafran

Io preferisco mettere il file in un altro posto, tipo fra i documenti che backuppo regolarmente.
In Autostart ci metto un link al file ma questa è una preferenza mia, tu fai come ti pare.

La procedura che hai indicato è sostanzialmente giusta però il comando vuole root quindi il file deve appartenere a root:
# chown root file.sh

Se non l'hai mai fatto, ti ricordo che la prima riga del file deve essere:
#! /bin/sh
poi, sotto, ci va la stringa di comando.
Se vuoi ricordarti a cosa serve o che tempo faceva quando l'hai scritto, ci metti un commento, ovvero qualche parola iniziando ogni riga con il carattere #.

Ritratto di patel
Ritratto di mikronimo

zafran wrote:
Io preferisco mettere il file in un altro posto, tipo fra i documenti che backuppo regolarmente.
In Autostart ci metto un link al file ma questa è una preferenza mia, tu fai come ti pare.

La procedura che hai indicato è sostanzialmente giusta però il comando vuole root quindi il file deve appartenere a root:
# chown root file.sh

Se non l'hai mai fatto, ti ricordo che la prima riga del file deve essere:
#! /bin/sh
poi, sotto, ci va la stringa di comando.
Se vuoi ricordarti a cosa serve o che tempo faceva quando l'hai scritto, ci metti un commento, ovvero qualche parola iniziando ogni riga con il carattere #.

Quella di creare un link a... non la sapevo e mi pare una buona idea; il comando "# chown root file.sh", lo devo scrivere nel terminale (con il cancelletto?), oppure? Il comando "#! /bin/sh", va con il cancelletto?

Ritratto di mikronimo

patel wrote:
prova anche questo http://www.isleoftortuga.org/forum/index.php?showtopic=65682[/quote]

Ho, intanto, provato le indicazioni della guidina che mi ha indicato. Poi, dopo aver riavviato, faccio sapere l'esito... casomai mi sciogliesse il pc fra le mani... grazie in anticipo!

Ritratto di zafran

Quando trovi un comando che inizia con # vuol dire che per darlo devi essere root.
I comandi da utente cominciano con $.
Ma # e $ non vanno digitati: sono già presenti nel prompt a seconda che tu sia root o utente.

Quindi intendevo dire che quando hai scritto il file, che tu sia root o utente, lo devi chownare a root e per farlo devi essere root.

La prima riga di un file .sh deve comunque e sempre essere quella e comincia appunto con un commento.

Insomma il file.sh potrebbe essere:
------------------------------------
#! /bin/bash

# serve a controllare lo swappiness
echo 90 > /proc/sys/vm/swappiness

# questa è un'alternativa che funzia lo stesso
# sysctl -w vm.swappiness=90
-------------------------------------

Sul mio, con 750mb di ram, 30 60 o 90 non mostrano grandi differenze: si va comunque senza affrettarsi.
L'unica cosa che c'è sempre stata è che opera tende a inchiodarsi in uno swap infinito.
Vedrò se con altri valori questo problema verrà risolto.

Ritratto di mikronimo

patel wrote:
prova anche questo http://www.isleoftortuga.org/forum/index.php?showtopic=65682[/quote]

Ho applicato la soluzione indicata nel link e funziona; ora al controllo la swappiness risulta essere 90. Grazie.

Ritratto di mikronimo

zafran wrote:
Quando trovi un comando che inizia con # vuol dire che per darlo devi essere root.
I comandi da utente cominciano con $.
Ma # e $ non vanno digitati: sono già presenti nel prompt a seconda che tu sia root o utente.

Quindi intendevo dire che quando hai scritto il file, che tu sia root o utente, lo devi chownare a root e per farlo devi essere root.

La prima riga di un file .sh deve comunque e sempre essere quella e comincia appunto con un commento.

Insomma il file.sh potrebbe essere:
------------------------------------
#! /bin/bash

# serve a controllare lo swappiness
echo 90 > /proc/sys/vm/swappiness

# questa è un'alternativa che funzia lo stesso
# sysctl -w vm.swappiness=90
-------------------------------------

Sul mio, con 750mb di ram, 30 60 o 90 non mostrano grandi differenze: si va comunque senza affrettarsi.
L'unica cosa che c'è sempre stata è che opera tende a inchiodarsi in uno swap infinito.
Vedrò se con altri valori questo problema verrà risolto.

Come dicevo a Patel, la modifica fatta come dal link da lui segnalato funziona, che è la seconda che segnali anche tu nella citazione. Grazie a tutti!

PS: dimenticavo: anche fatta la modifica della swappiness, per far comprimere la ram, devo aprire un po' di programmi e allora, alla chiusura vedo che l'uso è calato di circa 120-130 Mb; c'è una qualche altra maniera (un comando che attivi una procedura che "saturi" la ram), per ottenere lo stesso effetto?

Ritratto di zafran

Mi spiace ma devo averti detto una fesseria, prima.
Se devi essere root, non puoi avviare lo script da ./kde/Autostart.
O si? Ti si è avviato?

Secondo me bisogna mettere il file da qualche parte e linkarlo da /etc/rc5.d e/o da qualche altra rcX.d se lo sai.
Come vedrai dagli altri link presenti devi fare 2 link:
# ln -s /percorso/del/file.sh S+numero+file
# ln -s /percorso/del/file.sh K+numero+file
dove numero indica la posizione dello start e del kill nella sequenza dei processi.

Mi sembra di capire che nessuna delle soluzioni (la tua e quella di patel) sia persistente.

Ritratto di mikronimo

zafran wrote:
Mi spiace ma devo averti detto una fesseria, prima.
Se devi essere root, non puoi avviare lo script da ./kde/Autostart.
O si? Ti si è avviato?

Secondo me bisogna mettere il file da qualche parte e linkarlo da /etc/rc5.d e/o da qualche altra rcX.d se lo sai.
Come vedrai dagli altri link presenti devi fare 2 link:
# ln -s /percorso/del/file.sh S+numero+file
# ln -s /percorso/del/file.sh K+numero+file
dove numero indica la posizione dello start e del kill nella sequenza dei processi.

Mi sembra di capire che nessuna delle soluzioni (la tua e quella di patel) sia persistente.

Ho provato quella di patel, in attesa delle delucidazioni che ti avevo chiesto (e che quindi non ho applicato, quindi non saprei dirti), e al riavvio il valore era quello che volevo io (90), infatti con la solita procedura di saturazioni della ram, il pc non si impalla nel tentativo di usare la swap e la ram si comprime; per quanto mi riguarda ho risolto, non ti preoccupare e ancora grazie.