LINUX.ORG.RU

Free memory


0

0

Поможите, пожалуйста... Проблема такая: моей программе необходимо
динамичпски отслеживать размер свободной памяти. В моей машине
установлено 1 GB. В /proc/meminfo написано, что свободно только
90 MB. Вот этот файл:

----------------cut---------------------------------------------
        total:    used:    free:  shared: buffers:  cached:
Mem:  1055756288 964710400 91045888        0 224440320 623288320
Swap: 3142045696 35160064 3106885632
MemTotal:      1031012 kB
MemFree:         88912 kB
MemShared:           0 kB
Buffers:        219180 kB
Cached:         600780 kB
SwapCached:       7900 kB
Active:         473196 kB
Inact_dirty:    379648 kB
Inact_clean:     37452 kB
Inact_target:   178056 kB
HighTotal:      131008 kB
HighFree:         1408 kB
LowTotal:       900004 kB
LowFree:         87504 kB
SwapTotal:     3068404 kB
SwapFree:      3034068 kB
Committed_AS:   152872 kB
----------------cut---------------------------------------------

Вопрос номер один: не гон ли это? Ничего такого, пожирающего со страшной силой память, не запущено.

Хорошо, а вот второй вопрос: корректно ли будет возвращать как
amount of free memory только число "free" из строчки "Mem", т.е.
на данный момент 90 MB, или надо бы прибавлять к этому числу объем
swap памяти?

Огромное спасибо ответившим!
anonymous

RE:

>Ничего такого, пожирающего со страшной силой память, не запущено.
там же написано, что 800 Мб на page/buffer кэш ушло.

>или надо бы прибавлять к этому числу объем swap памяти?
Объем swap free, хотя я не очень представляю зачем нужна такая статистика.

Murr ★★
()
Ответ на: RE: от Murr

Нет, ну а если мне нужно узнать рамер физической памяти, без учета свопа? Вообще, что представляют из себя buffers?

anonymous
()
Ответ на: комментарий от anonymous

> что представляют из себя buffers?

Smartdrive досовый помнишь? Примерно то же самое, но с более вменяемой стратегией работы. В общем случае объем (buffers/cache - N) мегабайт, где N -- некое число, можно считать свободной памятью равно как и своп.

Obidos ★★★★★
()
Ответ на: RE: от Murr

Нет, я хочу сказать - свободной памяти. Неужели это MemFree? Что же, получается, что после забивания этих нескольких мегабайт дальше будет исопльзоваться своп?

anonymous
()
Ответ на: комментарий от anonymous

> после забивания этих нескольких мегабайт дальше будет исопльзоваться своп?

Да нет же, сначала память будет отбираться из буферов, а по достижении некоторого предела, который я обозначил ранее как N (поскольку совсем без дисковых буферов и кэша жить худо) -- уже полезет в своп. Насколько помню, примерно так.

Obidos ★★★★★
()
Ответ на: комментарий от anonymous

RE:

>Нет, я хочу сказать - свободной памяти. Неужели это MemFree? Что же, получается, что после забивания этих нескольких мегабайт дальше будет исопльзоваться своп?

Нет, начнется вытеснение страничного/буферного кэша.

Murr ★★
()
Ответ на: RE: от Murr

Короче, правильное значение будет равно
MemTotal - (MemUsed - buffers - cached)
Да? Ну вот это мне и так хотелось узнать...

anonymous
()

Подсмотри как это считается в gkrellm
Результат оно показывает более менее верный.

Dead ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.