4

У меня есть компьютер с 16 ГБ оперативной памяти. В данный момент top показывает всю занятую оперативную память (НЕ кеш), но оперативная память, используемая различными процессами, очень далека от 16 ГБ.

Я видел эту проблему несколько раз, но я не понимаю, что происходит. Есть какие-нибудь подсказки? До сих пор моим единственным выходом было перезагрузить машину.

2 ответа2

7

Насколько я понимаю, в Linux «используемая» память делится на «активную» и «неактивную».

Активная память - это память, которая в настоящее время выделена для процесса и используется им.

Неактивна память, которая была выделена процессу, но больше не используется им (она была свободна ()d). Распределитель помещает эту память на одну сторону для последующего использования, но не очищает ее. Если те же данные, которые находятся в этом блоке памяти, запрашиваются снова, он просто перераспределяет этот блок памяти процессу. Если запрашивается блок памяти и не остается «чистой» памяти, он начинает перераспределять эту «грязную» память.

Изучение /proc /meminfo может показать вам, сколько вашей «использованной» памяти активно и сколько неактивно.

1

Убедитесь, что включен какой-то обмен, и обмен не равен нулю. Использование подкачки обычно показывает, есть ли реальное давление на память, а не просто буферы / кэш, временно занимающий то, что доступно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .