Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Свободная и занятая память в Linux

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

sunny1983

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Пытаюсь понять как получить информацию по свободной и занятой памяти в GNU/Linux, используя инструменты top, ps, free, smem и файловую систему /proc
 
1. Итак, если использовать файловую систему /proc, которую используют все эти инструменты, то в файле /proc/meminfo можно найти строки MemTotal, MemFree, Cached и другие. При этом свободная память в Linux - это сумма MemFree+Cached+Buffers.
2. Также в этом файле есть строка, в которой указан объём памяти занимаемой ядром, это - это Slab.
3. А вот память, занимаемую процессами userspace можно узнав, только вычев из MemTotal свободную память, вычисленную в пункте 1, и Slab.
4. Занятую память можно посчитать, вычев из полного объёма памяти свободную, но вот посчитать, просуммировав занятую память всех процессов не получится, так как занятая память каждым отдельным процессом включает в себя также и разделяемую память, и если просуммировать, то фактически просуммируешь одни и те же чиста несколько раз, то есть результат будет больше чем фактически занимаемая память.
4. Если смотреть что выводит команда top, то там есть столбец VIRT, то есть размер виртуальной памяти, доступной процессу, эти же данные есть и в файловой системе /proc в файле /proc/PID/status в строке VmSize, но это виртуальная память, то есть вся память, которую может выделить процессу ядро, на самом деле память, реально используемая процессом - это сумма столбца RES (резидентная) и SHR (разделяемая). А вот пытаться проссумировать все процессы между собой не нужно как раз из-за разделяемой памяти, то есть страниц, используемых одновременно несколькими процессами.
 
А теперь вопрос, который относится к реальной задаче. Есть некий процесс, который потребляет 13,5% памяти, по данным top, то есть процентное отношение VmSize к MemTotal. А вот свободная память вычелненная по п.1 в отношении к MemTotal- 67,2%. Как понять куда делись оставшиеся 57,3? Другие процессы потребляют не более чем 0.1% каждый, так что на разделяемую память тут не спишешь.

Всего записей: 190 | Зарегистр. 04-02-2010 | Отправлено: 22:13 24-02-2021
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » Свободная и занятая память в Linux


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru