Ciao a tutti.

Al momento ho questa situazione in RAM e SWAP:

$ free -h
             total       used       free     shared    buffers     cached
Mem:          7,7G       7,5G       159M       100M        75M       5,9G
-/+ buffers/cache:       1,5G       6,1G
Swap:         7,9G       408M       7,5G

E mi stavo chiedendo...

C'è un modo per conoscere quali programmi/dati sono in questa cache della RAM, quali programmi/dati sono nella SWAP e/o da quale processo sono stati generati?

Grazie mille in anticipo.

PS: Ho posto la stessa domanda su AskUbuntu e sul Forum italiano.

chiesto 10 Mag '14, 11:30

dadexix86's gravatar image

dadexix86 ♦♦
16.9k716161

modificato 10 Mag '14, 11:48

@dadexix86: sicuramente l'istruzione ps -ef o -fu che ti dicono il proprietario del processo e da quale altro processo è stato generato (UID, PID, PPID), le conosci già a menadito. Non so se c'è una soluzione, ma trovo interessante la tua domanda, dalla quale, con una soluzione, si può pensare ad altri sbocchi. Per cui mi sentirei di chiamare in causa @enzotib.

(10 Mag '14, 11:52) enzoge enzoge's gravatar image

Tirato in ballo AskUbuntu, noi ci mettiamo da parte :)

(10 Mag '14, 15:16) enzotib ♦♦ enzotib's gravatar image

Non che ne sappiano moto di più, a quanto pare ;)

Magari qualcuno della comunità italiana ne sa qualcosa di più, tentar non nuoce! :P

(10 Mag '14, 15:49) dadexix86 ♦♦ dadexix86's gravatar image

@dadexix86: dalle risposte che vedo, credo proprio che se c'è una soluzione, qui l'unico che può arrivarci è @enzotib. :)

Naturalmente senza escludere te, che però se hai fatto la domanda, è perché probabilmente ti sei già scornato col problema.

(10 Mag '14, 16:35) enzoge enzoge's gravatar image

Per la cache c'è uno script, che mi hanno segnalato sia su AskUbuntu che sul Forum e che originariamente si trova su StackOverflow:

#!/bin/bash

    # find-out-what-is-using-your-swap.sh
    # -- Get current swap usage for all running processes
    # --
    # -- rev.0.3, 2012-09-03, Jan Smid          - alignment and intendation, sorting
    # -- rev.0.2, 2012-08-09, Mikko Rantalainen - pipe the output to "sort -nk3" to get sorted output
    # -- rev.0.1, 2011-05-27, Erik Ljungstrom   - initial version

SCRIPT_NAME=`basename $0`;
SORT="kb";                 # {pid|kB|name} as first parameter, [default: kb]
[ "$1" != "" ] && { SORT="$1"; }

[ ! -x `which mktemp` ] && { echo "ERROR: mktemp is not available!"; exit; }
MKTEMP=`which mktemp`;
TMP=`${MKTEMP} -d`;
[ ! -d "${TMP}" ] && { echo "ERROR: unable to create temp dir!"; exit; }

>${TMP}/${SCRIPT_NAME}.pid;
>${TMP}/${SCRIPT_NAME}.kb;
>${TMP}/${SCRIPT_NAME}.name;

SUM=0;
OVERALL=0;
    echo "${OVERALL}" > ${TMP}/${SCRIPT_NAME}.overal;

for DIR in `find /proc/ -maxdepth 1 -type d -regex "^/proc/[0-9]+"`;
do
    PID=`echo $DIR | cut -d / -f 3`
    PROGNAME=`ps -p $PID -o comm --no-headers`

    for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
    do
        let SUM=$SUM+$SWAP
    done

    if (( $SUM > 0 ));
    then
        echo -n ".";
        echo -e "${PID}\t${SUM}\t${PROGNAME}" >> ${TMP}/${SCRIPT_NAME}.pid;
        echo -e "${SUM}\t${PID}\t${PROGNAME}" >> ${TMP}/${SCRIPT_NAME}.kb;
        echo -e "${PROGNAME}\t${SUM}\t${PID}" >> ${TMP}/${SCRIPT_NAME}.name;
    fi
    let OVERALL=$OVERALL+$SUM
    SUM=0
done
echo "${OVERALL}" > ${TMP}/${SCRIPT_NAME}.overal;
echo;
echo "Overall swap used: ${OVERALL} kB";
echo "========================================";
case "${SORT}" in
    name )
        echo -e "name\tkB\tpid";
        echo "========================================";
        cat ${TMP}/${SCRIPT_NAME}.name|sort -r;
        ;;

    kb )
        echo -e "kB\tpid\tname";
        echo "========================================";
        cat ${TMP}/${SCRIPT_NAME}.kb|sort -rh;
        ;;

    pid | * )
        echo -e "pid\tkB\tname";
        echo "========================================";
        cat ${TMP}/${SCRIPT_NAME}.pid|sort -rh;
        ;;
esac
rm -fR "${TMP}/";

ed è da lanciare con sudo per avere i dati corretti.

Aspetto volentieri altre risposte se qualcuno ha info per i dati e programmi in cache :)

coll. permanente

ha risposto 11 Mag '14, 11:14

dadexix86's gravatar image

dadexix86 ♦♦
16.9k716161

hai provato i comandi top e vmstat?

(11 Mag '14, 15:22) letizia letizia's gravatar image

Potresti essere più specifica? Non conosco come potrebbero essermi di aiuto.

top sicuramente non è utile per capire cosa c'è in cache, perché considera solo processi attivi.

vmstat non l'ho mai usato, potrebbe essere utile per la cache?

(11 Mag '14, 18:45) dadexix86 ♦♦ dadexix86's gravatar image

Forse non ho capito la domanda, scusa. Per quel che ne so, la cache è usata dal SO per salvare tipicamente file letti o scritti al fine di non riaccedere al disco se richiesti nuovamente. Non mi sembra che sia strettamente collegata ad un processo. Se il sistema ha bisogno di più RAM, la cache viene svuotata a seconda delle necessità. Prova a vedere questo link: http://www.faqs.org/docs/linux_admin/buffer-cache.html Il comando top mostra come i processi attivi stanno utilizzando le risorse di sistema, tra cui anche la memoria. vmstat in effetti non è pertinente.

(11 Mag '14, 21:12) letizia letizia's gravatar image

ah! forse ora che ho postato, ho capito! Vuoi scoprire quale processo ha portato linux a mettere in cache una pagina la prima volta?

(11 Mag '14, 21:13) letizia letizia's gravatar image

Esattamente quello! ;)

(11 Mag '14, 21:14) dadexix86 ♦♦ dadexix86's gravatar image

Ho provato a documentarmi, ed ho consultato amici sistemisti, non ho trovato nulla che possa servire. Di fatto le informazioni sono salvate in ottica di oggetti che possono essere riutilizzati da tutti, inoltre il processo originale potrebbe aver terminato la sua esecuzione ed il suo pid essere stato riutilizzato. Forse uno sviluppatore che si occupa del memory management potrebbe sapertelo dire.

(14 Mag '14, 20:15) letizia letizia's gravatar image

Grazie mille per la ricerca! Io purtroppo non conosco nessuno di detti sviluppatori, aspetto ancora qualche tempo e poi nel caso chiedo su Stack Overflow :)

(14 Mag '14, 20:23) dadexix86 ♦♦ dadexix86's gravatar image

dimenticavo, alcune statistiche relative alla cache e divise per cache le trovi in /proc/slabinfo. Spero tu riesca a trovare la risposta.

(14 Mag '14, 21:12) letizia letizia's gravatar image
(16 Mag '14, 22:44) letizia letizia's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×22
×12
×6

domanda posta: 10 Mag '14, 11:30

domanda visualizzata: 1,304 volte

ultimo aggiornamento: 16 Mag '14, 22:44

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.