Почему при запуске vs system monitor я получаю разные цифры free -m
? Я несколько дней запускал Firefox с Flash, и моя машина стала медленной; он занял весь 1 ГБ моей памяти, поэтому я отключил Firefox и npviewer.bin, и системная память теперь показывает, что у меня 192 МБ ОЗУ, хотя, как free -m
я сказал, 647 МБ?
Есть мысли? Я думаю, что системный монитор прав.
решение1
В любой более-менее сложной операционной системе нет четкого представления о том, сколько памяти использует конкретное приложение или сколько памяти свободно. Основные источники осложнений:
- Если у вас есть swap, вы включаете свободное пространство swap в свободную память? Если нет, то какой смысл в swap? Но если есть, у вас, скорее всего, всегда будет много свободной памяти, даже если ваша система работает вхолостую (т. е. много swap) из-за нехватки оперативной памяти.
- Память можно использовать по-разному. Два основных — это память, выделяемая приложениями, и память, выделенная для дисковых кэшей. Обычно эти два типа имеют одинаковый порядок величины в системе, не испытывающей нехватки ресурсов. Если считать только память, которая не используется ни для каких целей, то ее обычно очень мало: дисковые кэши не исчезнут, пока в них не возникнет необходимость. Но если включить дисковые кэши в свободную память, можно подумать, что можно заполнить ее всю памятью приложений, но тогда вы будете работать с перебоями из-за нехватки дискового кэша.
- Общая память затрудняет подсчет части памяти, выделенной конкретному приложению. Общая память включает в себя такие вещи, как общие библиотеки и дисковые кэши для файлов, которые открыты более чем одним приложением.
Так что обе приведенные вами цифры, вероятно, верны, просто они учитывают разные понятия «свободной памяти». (И free
приводит несколько цифр; вы не сказали, какая из них 647 МБ — в -/+ buffers/cache
строке кэши на дисках считаются свободной памятью, тогда как в Mem
строке они не учитываются.)