URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 78300
[ Назад ]

Исходное сообщение
"FreeBSD. непонятки с памятью."

Отправлено Koshak , 17-Янв-08 16:16 
Доброго всем времени суток.

Может кто подскажет такую весчь: на машине

    FreeBSD  6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 12 11:05:30 UTC 2007

установлен 1 гиг памяти:

    hw.physmem: 1054060544

вот разблюдовка по страничкам:

    vm.stats.vm.v_active_count: 15941
    vm.stats.vm.v_inactive_count: 1371
    vm.stats.vm.v_wire_count: 16218
    vm.stats.vm.v_cache_count: 0
    vm.stats.vm.v_free_count: 219019
    vm.stats.vm.v_page_count: 252701

top даёт такую картину:

41 processes:  1 running, 40 sleeping
CPU states:  0.0% user,  0.0% nice,  0.0% system,  0.2% interrupt, 99.8% idle
Mem: 63M Active, 5484K Inact, 63M Wired, 110M Buf, 855M Free
Swap: 4096M Total, 4096M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
89912 daemon      1  20    0 88984K 13184K lockf  0   1:08  0.00% httpd
89911 daemon      1  20    0 89036K 13276K lockf  0   0:53  0.00% httpd
89910 daemon      1  20    0 89084K 13288K lockf  0   0:52  0.00% httpd
  364 daemon      1  20    0 87516K  8096K lockf  0   0:30  0.00% httpd
  363 daemon      1  20    0 87516K  8096K lockf  0   0:30  0.00% httpd
8586 daemon      1   4    0 90516K 14752K kqread 0   0:20  0.00% httpd
8589 daemon      1  20    0 88940K 13128K lockf  0   0:20  0.00% httpd
89904 root        1   8    0 88552K 10812K nanslp 0   0:20  0.00% httpd
8590 daemon      1  20    0 92716K 16896K lockf  0   0:19  0.00% httpd
8588 daemon      1  20    0 90108K 14268K lockf  0   0:19  0.00% httpd
8575 daemon      1  20    0 90084K 14340K lockf  0   0:19  0.00% httpd
8584 daemon      1  20    0 92700K 16900K lockf  0   0:19  0.00% httpd
  299 root        1   8    0 87436K  7896K nanslp 0   0:19  0.00% httpd
  568 root        1   8    0  1912K  1328K nanslp 0   0:18  0.00% ipmon
8580 daemon      1  20    0 92708K 16924K lockf  0   0:17  0.00% httpd
  695 root        1  96    0  3524K  2232K select 0   0:09  0.00% sshd
  585 root        1  96    0  1352K   848K select 0   0:04  0.00% syslogd
23106 onikitin    1  96    0  6272K  2596K select 0   0:03  0.00% sshd
  700 root        1   8    0  1380K   920K nanslp 0   0:01  0.00% cron
  738 root        1  96    0  1788K  1044K select 0   0:01  0.00% ftpd
23411 onikitin    1  96    0  6272K  2636K select 0   0:00  0.00% sshd
23107 onikitin    1   5    0  5776K  3424K ttyin  0   0:00  0.00% csh
23103 root        1   4    0  6276K  2568K sbwait 0   0:00  0.00% sshd
23408 root        1   4    0  6276K  2604K sbwait 0   0:00  0.00% sshd
23726 root        1  96    0  2372K  1388K CPU0   0   0:00  0.00% top
23537 root        1  20    0  4944K  2644K pause  1   0:00  0.00% csh
23645 root        1   8    0  1268K   672K nanslp 0   0:00  0.00% statistic
23412 onikitin    1  20    0  5764K  3404K pause  1   0:00  0.00% csh
  521 root        1  96    0   528K   284K select 1   0:00  0.00% devd
23536 onikitin    1   8    0  1776K  1176K wait   0   0:00  0.00% su
  751 root        1   5    0  1344K   800K ttyin  0   0:00  0.00% getty
  750 root        1   5    0  1344K   800K ttyin  1   0:00  0.00% getty
  752 root        1   5    0  1344K   800K ttyin  0   0:00  0.00% getty
  754 root        1   5    0  1344K   800K ttyin  0   0:00  0.00% getty
  753 root        1   5    0  1344K   800K ttyin  1   0:00  0.00% getty
  755 root        1   5    0  1344K   800K ttyin  1   0:00  0.00% getty
  756 root        1   5    0  1344K   800K ttyin  1   0:00  0.00% getty
  757 root        1   5    0  1344K   800K ttyin  0   0:00  0.00% getty
29819 daemon      1  20    0 87456K  7972K lockf  0   0:00  0.00% httpd


Объясните скудоумному как получается свободной памяти 855Мб, если даже беглый подсчёт
по колонке SIZE даёт около 2х гиг?
своп при этом пустой: Swap: 4096M Total, 4096M Free


Содержание

Сообщения в этом обсуждении
"FreeBSD. непонятки с памятью."
Отправлено Гость , 17-Янв-08 18:42 
>Объясните скудоумному как получается свободной памяти 855Мб, если даже беглый подсчёт
>по колонке SIZE даёт около 2х гиг?
>своп при этом пустой: Swap: 4096M Total, 4096M Free

Во-первых, надо считать не SIZE а RES. SIZE - объем виртуальной памяти процесса, включая mmap'ы и прочая, к физической памяти он отношения не имеет.

Во-вторых, даже по RSS суммировать не правильно, потому что большая часть памяти разделена между процессами, и в таблицах ps/top присутствует по нескольку раз.

Например, если процесс выделил 100 метров и fork'нулся, top покажет 2 процесса с RES = 100M. На деле же, пока ни один из процессов писал в эту память, выделено всего 100 метров на оба процесса.

Есть утилиты, которые сообщают детальную инфу по всей памяти процесса - где код, где данные, что шарится и что нет. Не помню, правда, название, если кто вспомнит буду благодарен.


"FreeBSD. непонятки с памятью."
Отправлено Koshak , 17-Янв-08 19:15 
спасибо за детальное описание :). теперь всё на свои места встаёт.
>
>Есть утилиты, которые сообщают детальную инфу по всей памяти процесса - где
>код, где данные, что шарится и что нет. Не помню, правда,
>название, если кто вспомнит буду благодарен.

вот сцылко на сайт, где всякие утилитки лежат. может там чего есть:
http://www.nixp.ru/soft/system_sysmon



"FreeBSD. непонятки с памятью."
Отправлено Гость , 18-Янв-08 20:23 
> http://www.nixp.ru/soft/system_sysmon

Там нету.

По всей видимости, /usr/ports/sysutils/pmap, но он пока только под 6.x.