Подтвердить что ты не робот

Комплексные методы просмотра использования памяти в Solaris

В Linux команда "top" показывает подробный, но высокоуровневый обзор использования вашей памяти, показывая:

Общая память, используемая память, свободная память, использование буфера, использование кеша, размер свопа и использование свопов.

Мой вопрос в том, какие команды доступны, чтобы показать эти данные использования памяти ясным и простым способом? Бонусные баллы, если они присутствуют в "Core" установке Solaris. 'sar' не учитывается:)

4b9b3361

Ответ 1

Вот основные сведения. Я не уверен, что любой из них считается "понятным и простым".

ps(1)

Для просмотра уровня процесса:

$ 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: общий размер виртуального процесса (kb)

rss/RSS: размер резидентного набора (kb, может быть неточным (!), см. man)

osz/SZ: общий размер в памяти (страницы)

Чтобы вычислить размер байта со страниц:

$ 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)

"Длинные списки" и "сводные" режимы:

$ 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)

Более старая версия (3.51) доступна на компакт-диске Solaris от Sun, с отказом от поддержки "Сообщество (не Sun)". Более свежие бинарные пакеты доступны с sunfreeware.com или 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)

А что с ошибкой sar?:)

Ответ 2

# 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

Ответ 3

"top" обычно доступен на Solaris.

Если нет, вернитесь к "vmstat", который доступен в большинстве систем UNIX.

Он должен выглядеть примерно так (из окна AIX)

vmstat

System configuration: lcpu=4 mem=12288MB ent=2.00

kthr    memory              page              faults              cpu
----- ----------- ------------------------ ------------ -----------------------
 r  b   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

colums "avm" и "fre" сообщают вам полную память и свободную память.

a "man vmstat" должен предоставить вам подробные сведения.

Ответ 4

Топ может быть скомпилирован из источников или загружен с sunfreeware.com. Как уже сообщалось, vmstat доступен (я полагаю, что это в базовой установке?).

Ответ 5

Команда free хороша. Потребуется короткое время, чтобы понять "+/- buffers/cache", но идея заключается в том, что кеш и буферы на самом деле не учитываются при оценке "free", так как он может быть сразу сброшен. Поэтому, чтобы узнать, сколько свободной (и используемой) памяти у вас есть, вам нужно удалить использование кеша/буфера, что удобно для вас.