Я упрощаю вещи, но есть только два случая, когда выгружаемая память в swap копируется обратно в физическую RAM:
Там есть ошибка страницы (приложение пытается вызвать память, отображаемую для обмена). Вы используете sudo swapoff -a (и др.), Чтобы отключиться.Все остальное имеет тенденцию быть пустой тратой времени. Память в свопе имеет тенденцию быть относительно неиспользованным, с низким уровнем трафика. Алгоритм Linux использует вещи, собирающиеся в swap, - это LRU (последнее время используется). Если вы столкнулись с ситуацией, когда вы пытаетесь разобраться с дисками и приложения останавливаются на ошибках страницы, проблема проста в исправлении: вам нужно больше оперативной памяти.
Память, просто сидящая на свопе, не замедлит работу компьютер. Это имеет только тот эффект, когда что-то должно застревать в swap и использоваться.
Примечание. Как я уже сказал, я упрощаю ситуацию здесь. Управление памятью - это абсолютно огромная тема, и мои несколько абзацев не выполняют никаких алгоритмов, их дизайнеров или их исполнителей. На протяжении многих лет у меня была своя доля битв с Linux-памятью и управлением кешем, но кое-что я узнал до сих пор: разработчики ядра знают больше, чем я. Они поставили вещи так, как они есть по причине.
уходит из ответа RAOF и, проведя бесчисленное количество часов в Интернете, чтобы иметь возможность полностью обновить обновление & amp; dist-upgrade на Ubuntu 12.04, я придумал это благодаря тому, что этот пост (https://bugs.launchpad.net/ubuntu/+source/grub/+bug/239674/comments/1) указывает, что grub придерживается в UCF, а не в Dpkg Options, если вы хотите использовать хранители пакетов grub menu.lst, а не любые возможные локальные изменения menu.lst.
я оставил опции Dpkg force-confnew для других пакетов, t grub.
#!/bin/bash
unset UCF_FORCE_CONFFOLD
export UCF_FORCE_CONFFNEW=YES
ucf --purge /boot/grub/menu.lst
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get -o Dpkg::Options::="--force-confnew" --force-yes -fuy dist-upgrade
Предыдущие решения не будут работать с 16.04. Это работает из этого ответа при переполнении стека:
sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" install grub-pc