Come leggere `top`. L'elenco di processi dice che i processi hanno scambiato ma la panoramica dice che non viene utilizzato alcun swap

Sto usando top per monitorare il mio server. La row di swap legge

Swap: 1044220k total, 0k used, 1044220k free, 148544k cached

Ho colpito O p per ordinare per swap.

  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND 703 mysql 20 0 930m 43m 7092 S 0 8.9 0:00.66 886m mysqld 1555 www-data 20 0 346m 9792 3208 S 0 2.0 0:00.00 337m apache2 1559 www-data 20 0 347m 10m 3712 S 0 2.2 0:00.01 336m apache2 1567 www-data 20 0 345m 9448 2552 S 0 1.9 0:00.01 336m apache2 1557 www-data 20 0 345m 9452 2556 S 0 1.9 0:00.01 336m apache2 1562 www-data 20 0 345m 9508 2344 S 0 1.9 0:00.01 336m apache2 1566 www-data 20 0 345m 9684 2684 S 0 1.9 0:00.02 335m apache2 

Mi stavo chiedendo come dovrei leggere questo. È questo lo swap disponibile a questi processi?
Questa mattina in alto mysqld era usando 1.1 gb di swap e il 30% del mio swap era esaurito. AFter lancia più ram alla macchina mysqld è giù a 886m e la parte superiore dice che l'uso di swap è 0 (che sembra avere senso matematico). Quindi sto solo chiedendo che cosa è la colonna swap visualizzazione ?? Perché la panoramica swap non riflette la sum della colonna swap? Grazie.

  • hanno cambiato una cartella in www-data, ma apache non è ancora in grado di creare file su di esso
  • Cartella che scompare da / var / funziona al riavvio con Ubuntu 12.04
  • Come copiare i messaggi in output su sendmail
  • alcune novizie su VPS
  • Come controllare il mio server linux non è spamming
  • Come autoscrivere un certificato SSL per un dominio specifico?
  • redirect url riscritto utilizzando haproxy
  • Aggiorna Ubuntu linux-virtual su EC2
  • 2 Solutions collect form web for “Come leggere `top`. L'elenco di processi dice che i processi hanno scambiato ma la panoramica dice che non viene utilizzato alcun swap”

    Viene calcolato sottraendo memory fisica dalla memory virtuale:

     SWAP = VIRT - RES 

    man top per ulteriori dettagli:

      o: VIRT -- Virtual Image (kb) The total amount of virtual memory used by the task. It includes all code, data and shared libraries plus pages that have been swapped out and pages that have been mapped but not used. p: SWAP -- Swapped size (kb) Memory that is not resident but is present in a task. This is memory that has been swapped out but could include additional non-resident memory. This column is calculated by subtracting physical mem‐ ory from virtual memory. q: RES -- Resident size (kb) The non-swapped physical memory a task has used. 

    Penso che il calcolo superiore non sia corretto, ho creato il seguente programma e ho lanciato nel server senza alcun software di runnging

     #include <stdio.h> #include <stdlib.h> #define ALLOC_SIZE(e)( e * 1024 ) int main(){ char *p = malloc(ALLOC_SIZE(1024 * 1024)); sleep(190); } gcc -o kk kk.c ./kk & [1] 9880 top -p 9880 Swap: 31457272k total, 0k used, 31457272k free, 392892k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND 9880 root 16 0 1027m 352 284 S 0.0 0.0 0:00.00 1.0g kk 

    Produzione libera

     free -m total used free shared buffers cached Mem: 128966 715 128250 0 87 383 -/+ buffers/cache: 244 128721 Swap: 30719 0 30719 

    meminfo

     grep -i swap /proc/meminfo SwapCached: 0 kB SwapTotal: 31457272 kB SwapFree: 31457272 kB 

    In poche parole, la parte superiore dice che ho 1 GB di swap utilizzato, ma dalla precedente output non ho spazio di swap occupato, quindi non ho alcuna parte della memory scambiata per il backup di archiviazione.

    Il resto di (VIRT – RES) è virtuale mai toccato

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.