Есть вопрос! — Из чего состоит swap ?
Можно ли каким-либо образом просмотреть, какие программы и сколько памяти занимают в swap ?
Дело в том, что у меня на машине 2 гига оперативы
Из них на данный момент занято 980 метров. Но, кроме того, 170 метров в свопе....
Можно ли узнать, кто именно туда залез и в каком размере ?
UPD:В общем, вопрос не однозначен, и что конкретно храниться в свопе, похоже просмотреть нельзя... остальное под катом...
Есть какая-то колонка SWAP в утилите top, но она похоже как-то завязана на виртуальную память. А виртуальная память это далеко не своп...
Есть еще какая-то формула расчета свопа на основе RSS, но она тоже не работает...
Вообще, если погуглить, то вопросов по этому поводу достаточно много, а вот решения я ни одного не увидел.
Но зато я нашел причину, почему у меня память залезла в своп:
Коньки и менеджер процессов в гноме показывают, что оперативы у меня загружено около половины, но просматривая информацию из top, видно что еще столько-же находиться в кеше.
Подробнее о кеше:
Когда программа не закрывается, а освобождает память (к примеру закрытие вкладки в FF), то операционка не освобождает память, а помечает ее свободной для использования. В коньках и в менеджере процессов этот кэш не учитывается, а вот при выделении памяти новому процессу она как-раз учитывается.
Соответственно, в свопе может сидеть как вновь открытое приложение, так и закешированная освобожденная память. Реально отделить их друг от друга я сейчас не представляю как.
Возможно, когда я дойду в книге "Stevens - Advanced Programming in the UNIX Environment" до раздела о получении информации о занятых ресурсов процессов я боле подробно отвечу на этот вопрос.
Но пока останавливаюсь на вышеизложенном варианте.
Всем спасибо за обсуждение.
PS: если выбирать из тормознутого кеша и внезапного закрытия приложения, когда заканчивается память, то я выбираю первое. Ужасно не люблю когда программыв этих супер-устойчивых и надежных линухах закрываются без моего уведомления.
Дело в том, что у меня на машине 2 гига оперативы
Из них на данный момент занято 980 метров. Но, кроме того, 170 метров в свопе....
Можно ли узнать, кто именно туда залез и в каком размере ?
UPD:В общем, вопрос не однозначен, и что конкретно храниться в свопе, похоже просмотреть нельзя... остальное под катом...
Есть какая-то колонка SWAP в утилите top, но она похоже как-то завязана на виртуальную память. А виртуальная память это далеко не своп...
Есть еще какая-то формула расчета свопа на основе RSS, но она тоже не работает...
Вообще, если погуглить, то вопросов по этому поводу достаточно много, а вот решения я ни одного не увидел.
Но зато я нашел причину, почему у меня память залезла в своп:
Коньки и менеджер процессов в гноме показывают, что оперативы у меня загружено около половины, но просматривая информацию из top, видно что еще столько-же находиться в кеше.
Подробнее о кеше:
Когда программа не закрывается, а освобождает память (к примеру закрытие вкладки в FF), то операционка не освобождает память, а помечает ее свободной для использования. В коньках и в менеджере процессов этот кэш не учитывается, а вот при выделении памяти новому процессу она как-раз учитывается.
Соответственно, в свопе может сидеть как вновь открытое приложение, так и закешированная освобожденная память. Реально отделить их друг от друга я сейчас не представляю как.
Возможно, когда я дойду в книге "Stevens - Advanced Programming in the UNIX Environment" до раздела о получении информации о занятых ресурсов процессов я боле подробно отвечу на этот вопрос.
Но пока останавливаюсь на вышеизложенном варианте.
Всем спасибо за обсуждение.
PS: если выбирать из тормознутого кеша и внезапного закрытия приложения, когда заканчивается память, то я выбираю первое. Ужасно не люблю когда программы