Память и своп в Ubuntu

1

Когда я захожу на системный монитор в Ubuntu, используется около 75% памяти и 45% подкачки. Почему подкачка используется, даже когда доступна память? Разве Linux не перемещает данные из раздела подкачки в память?

Praveen Sripati
источник

Ответы:

2

Это Можно перенести его в память. На самом деле, вы можете полностью отключить своп, ИЛИ установить «предел».
Это так называемый swappiness ».

Информация: http://www.linuxvox.com/2009/10/what-is-the-linux-kernel-parameter-vm-swappiness/

Как проверить свои: cat /proc/sys/vm/swappiness
ИЛИ ЖЕ
sysctl -n vm.swappiness

Как установить это значение: echo "10" > /proc/sys/vm/swappiness

Чем больше Swappiness вы установите, тем больше ядро ​​поменяется местами. Так что установите НИЗКУЮ сумму, если хотите использовать своп только тогда, когда он необходимый ,

(Примечание: когда вы устанавливаете лимит, вы должны быть пользователем root!)

Shiki
источник
0

Linux любит хранить данные как в подкачке, так и в кеше в памяти одновременно, когда память доступна. Если вы посмотрите в правильном месте, то обнаружите, что большинство, если не все, «выгруженные» данные также кэшируются в основной памяти.

Зачем? Свободная память не дает никакой пользы, но, сохраняя кэширование подкачки, ядро ​​приобретает большую гибкость:

  • Нужно ли больше реальной памяти? ОК, просто перераспределить кешированный блок. Он уже хранится в swap, поэтому сначала нужно записать его на диск.

  • Нужен ли замененный блок? Хорошо, он уже кэширован в памяти, поэтому мы можем просто изменить состояние кэшированной копии с «кэшированного» на «активный» и сделать недействительной замененную копию без необходимости вообще касаться диска.

Dave Sherohman
источник
0

Почему система перемещает данные из раздела подкачки в память, если к этим данным не обращались и, возможно, никогда не получат доступ? Это потребовало бы бессмысленного дискового ввода-вывода и растраты физической памяти.

David Schwartz
источник