Страница 1 из 1

Куда девается память?

Добавлено: 2009-09-22 23:12:43
djan
есть FreeBSD 7.2-RELEASE x64. Ядро пересбранное. Устанвлено 512 mb оперативки. из запущеных демонов - mysql-server-5.1.38 и proftpd-1.3.2, но нагрузки практически никакой. Сразу после перезаргузки

Код: Выделить всё

last pid:   837;  load averages:  0.54,  0.26,  0.10    up 0+00:01:35  23:07:49
32 processes:  1 running, 31 sleeping
CPU:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 26M Active, 11M Inact, 25M Wired, 112K Cache, 16M Buf, 358M Free
Swap: 1024M Total, 1024M Free
а через несколько дней получаю вот такую картинку

Код: Выделить всё

last pid:  7499;  load averages:  0.00,  0.00,  0.00    up 2+00:01:28  22:56:28
28 processes:  1 running, 27 sleeping
CPU:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 26M Active, 211M Inact, 79M Wired, 156K Cache, 54M Buf, 112M Free
Swap: 1024M Total, 1024M Free
собственно вопрос, куда деваются ~200 метров свободной памяти?

зы: просьба сильно не пинать, изучением фри только начаинаю заниматься

Re: Куда девается память?

Добавлено: 2009-09-22 23:17:30
paradox
а вы грохните ваших демонов итд
и посмотрите
осободиться через пару дней на голой системе или нет

и за одно top посмотрите
может sql и сьедает всю память

Re: Куда девается память?

Добавлено: 2009-09-23 3:22:19
mediamag
на виндовых серваках наблюдал как за неделю sql сервер сьедает под нагрузкой в 120 юзеров 500 мб оперативы...может и во фре таже картина...нужна оптимизация sql

Re: Куда девается память?

Добавлено: 2009-09-23 8:00:33
arkan
mediamag писал(а):на виндовых серваках наблюдал как за неделю sql сервер сьедает под нагрузкой в 120 юзеров 500 мб оперативы...может и во фре таже картина...нужна оптимизация sql
500 ??????
ну вы и везунчиг однако

Re: Куда девается память?

Добавлено: 2009-09-23 8:25:18
LMik
Покажите топ полный. У вас вот 211M Inact стало, это тупо кэш софтаптейта диска скорее всего. Если кому то понадобится память он будет чиститься.

Re: Куда девается память?

Добавлено: 2009-09-23 9:00:39
Gamerman
А разве это так плохо, что софт ест много свободной памяти? Главное, чтобы он освободил ее, если кто-то другой попросит.

Re: Куда девается память?

Добавлено: 2009-09-23 10:41:48
FoxDW
да не заморачивайтесь вы по этому поводу это нормально, у всех так

Mem: 26M Active вот сколько активно, остальное не используется

Re: Куда девается память?

Добавлено: 2009-09-23 12:35:25
djan
LMik писал(а):Покажите топ полный.
top через 13 часов после запуска

Код: Выделить всё

last pid:  2701;  load averages:  0.00,  0.00,  0.00            up 0+13:08:12  12:14:26
28 processes:  1 running, 27 sleeping
CPU:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 26M Active, 191M Inact, 80M Wired, 172K Cache, 53M Buf, 124M Free
Swap: 1024M Total, 1024M Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
 2538 niko        1  44    0 33772K  4704K select   0:00  0.00% sshd
  643 root        1  44    0 10956K  2372K select   0:00  0.00% proftpd
  780 root        1   8    0  6748K  1428K nanslp   0:00  0.00% cron
  584 root        1  44    0  5692K  1376K select   0:00  0.00% syslogd
 2535 root        1   4    0 33772K  4644K sbwait   0:00  0.00% sshd
 2540 niko        1  20    0 10136K  2936K pause    0:00  0.00% csh
  707 mysql       1   8    0  7064K  1724K wait     0:00  0.00% sh
  773 root        1  44    0 22880K  3740K select   0:00  0.00% sshd
  819 root        1   5    0  5688K  1228K ttyin    0:00  0.00% getty
  820 root        1   5    0  5688K  1228K ttyin    0:00  0.00% getty
  824 root        1   5    0  5688K  1228K ttyin    0:00  0.00% getty
  825 root        1   5    0  5688K  1228K ttyin    0:00  0.00% getty
  822 root        1   5    0  5688K  1228K ttyin    0:00  0.00% getty
  821 root        1   5    0  5688K  1228K ttyin    0:00  0.00% getty
  823 root        1   5    0  5688K  1228K ttyin    0:00  0.00% getty
  826 root        1   5    0  5688K  1228K ttyin    0:00  0.00% getty
 2701 niko        1  44    0  8116K  2080K RUN      0:00  0.00% top
  142 root        1  20    0  2568K   924K pause    0:00  0.00% adjkerntz
  526 root        1  44    0  2180K   640K select   0:00  0.00% devd
  756 mysql       9  20    0 56452K 23084K sigwai   0:00  0.00% mysqld
LMik писал(а):У вас вот 211M Inact стало, это тупо кэш софтаптейта диска скорее всего. Если кому то понадобится память он будет чиститься.
на сколько я понимаю, из мана для top
Cache: number of clean pages caching data that are available for immediate reallocation
софт апдейт должен отображаться в Cache

Re: Куда девается память?

Добавлено: 2009-09-23 15:39:54
strmaks
djan писал(а):
LMik писал(а):Покажите топ полный.
top через 13 часов после запуска
LMik писал(а):У вас вот 211M Inact стало, это тупо кэш софтаптейта диска скорее всего. Если кому то понадобится память он будет чиститься.
на сколько я понимаю, из мана для top
Cache: number of clean pages caching data that are available for immediate reallocation
софт апдейт должен отображаться в Cache
Расслабься все у тебя в порядке, смотрим :
Mem: 26M Active, 191M Inact, 80M Wired, 172K Cache, 53M Buf, 124M Free
26 + 191 + 80 + 53 +124 = 474М что с учетом погрешностей и дает твои 500М памяти
Inact - это кеш ФС чтения/записи т.е. если файл зачитался то он попадает в этот кеш и в последующем читается не с диска а из этого кеша. Легко проверить создай фалик размером метров так под 50 и сравни показания top до cat file > /dev/null и после. должны разойтись приблизительно на размер файла.

Код: Выделить всё

Mem: 209M Active, 4497M Inact, 619M Wired, 263M Cache, 399M Buf, 6286M Free

ll testfile.sql
-rw-------  1 root  wheel  2989064628 14 сен 13:59 testfile.sql

cat testfile.sql > /dev/null

Mem: 209M Active, 6427M Inact, 620M Wired, 22M Cache, 399M Buf, 4596M Free
насколько я помню Buf это и есть кеш софтапдейта.
А Cache это насколько я помню количество чистых страниц в памяти готовых под данные но которые в данный момент не могут быть освобождены например из-за фрагментации кеша. Обрати внимание на то как память перераспределилась

(6427 - 4497) Inctive с учетом погрешности равно (6286 - 4596) Free + (263 - 22) Cache
1930 ~ 1931

Re: Куда девается память?

Добавлено: 2009-09-23 18:54:07
djan
что-то я ничего не понимаю :(
конфигурация диска ,

Код: Выделить всё

isrv#mount
/dev/ad2s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad2s2d on /tmp (ufs, local, soft-updates) 
/dev/ad2s3d on /usr (ufs, local, soft-updates)
для корневого раздела софтапдейт не включен, логично пердположить что запись/чтение не должны ложиться к в кеш, для /tmp софтапдйт включен
запускаю два терминала, в одном крутится top, для наблюдения, во втором провожу эксперименты
до начала кспериметов

Код: Выделить всё

last pid: 14501;  load averages:  0.00,  0.00,  0.00            up 0+19:15:54  18:22:08
37 processes:  1 running, 36 sleeping
CPU:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 40M Active, [b]203M Inact[/b], 55M Wired, 7580K Cache, 53M Buf, [b]115M Free[/b]
Swap: 1024M Total, 1024M Free
создаю какой нибуть файл, в корне, метров так на 50

Код: Выделить всё

dd if=/dev/random of=/testmem.rand count=102400
по показаниям top в результате имем

Код: Выделить всё

Mem: 40M Active, 203M Inact, 105M Wired, 7580K Cache, 53M Buf, 65M Free
тоесть примерно 50 мб памяти из свободной "переместилось" в Wired, удаляю файло rm /testmem.rand - память "возвращается" в исходное состояние

Код: Выделить всё

Mem: 40M Active, 203M Inact, 55M Wired, 7580K Cache, 53M Buf, 115M Free
проделываю аналогичные экспиримеры на разделе, со включёным софтапдейтами

Код: Выделить всё

dd if=/dev/random of=/tmp/testmem.rand count=102400
результат аналогичный

Код: Выделить всё

до создания файла
Mem: 40M Active, 203M Inact, 55M Wired, 7580K Cache, 53M Buf, 115M Free
после создания
Mem: 40M Active, 203M Inact, 105M Wired, 7580K Cache, 53M Buf, 65M Free
после удаления
Mem: 40M Active, 203M Inact, 55M Wired, 7580K Cache, 53M Buf, 115M Free
возникает вопрос, что всетаки показывает top в строке с памятью и куда "складыывется" кеш диска при включеных/отключеных софтапдейтах?

Re: Куда девается память?

Добавлено: 2009-09-24 10:32:17
strmaks
djan писал(а):возникает вопрос, что всетаки показывает top в строке с памятью и куда "складыывется" кеш диска при включеных/отключеных софтапдейтах?
Как гласит закон мерфи все что можно понять неверно, будет понято неверно.
Не путайте софт-апдейт - отложенная запись метаинформации файловой системы на диск и кеш чтения с диска, это разные механизмы и назначение их абсолютно разное.
Если Вы обратили внимание в моем примере я ЧИТАЛ файл, а вы его пишете, естественно, у Вас выделение памяти происходит по другому.

По поводу куда что складывается я думаю стоит изучить man top, Вы узнаете что кешей в BSD много и работают они в разные моменты, по разному и с разными данными, там же внизу есть расшифровка что и какой элемент top означает.