web-dev-qa-db-fra.com

Méthodes complètes d'affichage de l'utilisation de la mémoire sur Solaris

Sous Linux, la commande "top" affiche un aperçu détaillé mais de haut niveau de votre utilisation de la mémoire, montrant:

Mémoire totale, mémoire utilisée, mémoire libre, utilisation du tampon, utilisation du cache, taille du swap et utilisation du swap.

Ma question est, quelles commandes sont disponibles pour afficher ces chiffres d'utilisation de la mémoire de manière claire et simple? Points bonus s'ils sont présents dans l'installation "Core" de Solaris. 'sar' ne compte pas :)

22
user40626

Voici les bases. Je ne suis pas sûr que l'un d'eux soit considéré comme "clair et simple".

ps(1)

Pour une vue au niveau du processus:

$ ps -opid,vsz,rss,osz,args
  PID  VSZ  RSS   SZ COMMAND
 1831 1776 1008  222 ps -opid,vsz,rss,osz,args
 1782 3464 2504  433 -bash
$

vsz/VSZ: taille totale du processus virtuel (ko)

rss/RSS: taille de l'ensemble résident (ko, peut être inexact (!), voir man)

osz/SZ: taille totale en mémoire (pages)

Pour calculer la taille des octets à partir des pages:

$ sz_pages=$(ps -o osz -p $pid | grep -v SZ )
$ sz_bytes=$(( $sz_pages * $(pagesize) ))
$ sz_mbytes=$(( $sz_bytes / ( 1024 * 1024 ) ))
$ echo "$pid OSZ=$sz_mbytes MB"

vmstat(1M)

$ vmstat 5 5 
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr rm s3 -- --   in   sy   cs us sy id
 0 0 0 535832 219880  1   2  0  0  0  0  0 -0  0  0  0  402   19   97  0  1 99
 0 0 0 514376 203648  1   4  0  0  0  0  0  0  0  0  0  402   19   96  0  1 99
^C

prstat(1M)

   PID USERNAME  SIZE   RSS STATE  PRI Nice      TIME  CPU PROCESS/NLWP       
  1852 martin   4840K 3600K cpu0    59    0   0:00:00 0.3% prstat/1
  1780 martin   9384K 2920K sleep   59    0   0:00:00 0.0% sshd/1
  ...

swap(1)

Modes "liste longue" et "résumé":

$ swap -l
swapfile             dev  swaplo blocks   free
/dev/zvol/dsk/rpool/swap 256,1      16 1048560 1048560
$ swap -s 
total: 42352k bytes allocated + 20192k reserved = 62544k used, 607672k available
$

top(1)

Une version plus ancienne (3.51) est disponible sur le CD compagnon Solaris de Sun, avec la clause de non-responsabilité selon laquelle il s'agit de la "Communauté (pas Sun) prise en charge". Des packages binaires plus récents sont disponibles sur sunfreeware.com ou blastwave.org.

load averages:  0.02,  0.00,  0.00;                      up 2+12:31:38                                                                                            08:53:58
31 processes: 30 sleeping, 1 on cpu
CPU states: 98.0% idle,  0.0% user,  2.0% kernel,  0.0% iowait,  0.0% swap
Memory: 1024M phys mem, 197M free mem, 512M total swap, 512M free swap

   PID USERNAME LWP PRI Nice  SIZE   RES STATE    TIME    CPU COMMAND
  1898 martin     1  54    0 3336K 1808K cpu      0:00  0.96% top
     7 root      11  59    0   10M 7912K sleep    0:09  0.02% svc.startd

sar(1M)

Et quel est le problème avec sar? :)

19
Martin Carpenter
# echo ::memstat | mdb -k
Page Summary                Pages                MB  %Tot
------------     ----------------  ----------------  ----
Kernel                       7308                57   23%
Anon                         9055                70   29%
Exec and libs                1968                15    6%
Page cache                   2224                17    7%
Free (cachelist)             6470                50   20%
Free (freelist)              4641                36   15%

Total                       31666               247
Physical                    31256               244
17
matli

"top" est généralement disponible sur Solaris.

Sinon, revenez à "vmstat" qui est disponible sur la plupart des systèmes UNIX.

Il devrait ressembler à ceci (à partir d'une boîte AIX)

vmstat 
 
 Configuration système: lcpu = 4 mem = 12288MB ent = 2,00 
 
 kthr défauts de page mémoire cpu 
 ----- - --------- ------------------------ ------------ ----- ------------------ 
 rb avm fre re pi po fr sr cy in sy cs us sy id wa pc ec 
 2 1 1614644 585722 0 0 1 22 104 0 808 29047 2767 12 8 77 3 0,45 22,3 
 

les colonnes "avm" et "fre" vous indiquent la mémoire totale et la mémoire libre.

un "homme vmstat" devrait vous donner les détails sanglants.

2
James Anderson

Top peut être compilé à partir de sources ou téléchargé à partir de sunfreeware.com. Comme indiqué précédemment, vmstat est disponible (je crois que c'est dans l'installation principale?).

0
Brian Knoblauch