1

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

3 ответа3

2

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

Информация: 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!)

0

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

0

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

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

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

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

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