Я собираюсь установить 64 бита 14.04 на новой машине с чем-то как 1 к, возможно, 128 ГБ RAM и еще большего количества RAM позже. Сколько места я должен выделить к разделу подкачки?
И особенно: ПОЧЕМУ те рекомендации для этих чисел?
(Ни один из существующих ответов здесь и здесь не объясняет ни одного из, почему и немного датированы, если мы смотрим на 1 ГБ или RAM и),
Установите для файла подкачки
round (sqrt (RAM))
, если вы не используете гибернация ОЗУ + раунд (sqrt (RAM))
если вы действительно используете спящий режим Установите для swappiness
10 на рабочем столе, но не на сервере!
Практическое правило, используемое за последние 25 лет, было минимум 1xRAM и максимум 2xRAM , так что это то, что вы будете постоянно цитировать.
Этот минимум был установлен еще в каменном веке , когда я был подростком, а динозавры все еще бродили по Земле и , потому что оперативная память была слишком дорогой, и вам абсолютно необходимо это пространство подкачки, чтобы иметь возможность выполнить что-либо.
Максимум был установлен в то время из-за уменьшения отдачи: слишком медленно менять столько памяти, так как доступ к жесткому диску в 1000 раз медленнее, чем ОЗУ: хорошо в чрезвычайной ситуации, но не совсем хорошо для повседневного использования! В то время, когда у вас закончилось пространство подкачки, пришло время добавить больше оперативной памяти! (что актуально и сегодня).
Если вы не используете спящий режим и ваша память превышает 1 ГБ, новое практическое правило - round (sqrt (RAM))
где RAM
- это, очевидно, размер вашей RAM в ГБ, а sqrt
- квадратный корень. : -)
Если вы используете гибернацию, вам нужно иметь возможность переставить весь объем ОЗУ + уже переставленную ОЗУ на диск, поэтому формула будет выглядеть так: ОЗУ + раунд (sqrt (RAM))
Правило убывающей отдачи по-прежнему сохраняется для максимума, но , если вы не проверите фактическое использование, использование 2xRAM - это просто пустая трата дискового пространства , поэтому не используйте максимум Если у вас заканчивается пространство подкачки при использовании других методологий .
Все это вместе дает вам следующую таблицу: (последние 3 столбца обозначают пространство подкачки)
RAM No hibernation With Hibernation Maximum
1GB 1GB 2GB 2GB
2GB 1GB 3GB 4GB
3GB 2GB 5GB 6GB
4GB 2GB 6GB 8GB
5GB 2GB 7GB 10GB
6GB 2GB 8GB 12GB
8GB 3GB 11GB 16GB
12GB 3GB 15GB 24GB
16GB 4GB 20GB 32GB
24GB 5GB 29GB 48GB
32GB 6GB 38GB 64GB
64GB 8GB 72GB 128GB
128GB 11GB 139GB 256GB
256GB 16GB 272GB 512GB
512GB 23GB 535GB 1TB
1TB 32GB 1056GB 2TB
2TB 46GB 2094GB 4TB
4TB 64GB 4160GB 8TB
8TB 91GB 8283GB 16TB
Вышеупомянутое просто практическое правило; это не закон гравитация!
Вы можете нарушить это правило (в отличие от закона гравитации), если ваш конкретный вариант использования отличается!
Совет от профессионалов: Всегда выделяйте SWAP в начале жесткого диска, так как головки должны меньше перемещаться внутри диска.
Да: На SSD это не имеет особого значения. больше, где вы размещаете область подкачки, поскольку они используют квантовое туннелирование вместо движущихся головок, а современные твердотельные накопители используют все свои ячейки памяти (даже нераспределенное пространство), чтобы предотвратить квантовую деградацию.
Просто выполните:
for szFile in /proc/*/status ; do
awk '/VmSwap|Name/{printf $2 "\t" $3}END{ print "" }' $szFile
done | sort --key 2 --numeric --reverse | more
, который предоставит вам список всех запущенных программ, которые выгружены (с той, которая использует больше всего места для подкачки вверху)
Если вы используете более нескольких КБ: увеличьте размер до минимума, иначе не беспокойтесь ...
Если вы на настольном / портативном клиенте (не на сервере) вы хотите, чтобы ваш графический интерфейс был максимально отзывчивым и менял местами только тогда, когда вам действительно нужно . Ubuntu оптимизирован для ранней замены для использования на сервере, , но на вашем клиенте вы хотите, чтобы это огромное 250-мегапиксельное необработанное изображение в gimp
было быстрым , поэтому установите swappiness
на 10 предотвратит слишком раннюю замену ядра, но при этом гарантирует, что замена не произойдет слишком поздно:
Если у вас есть файл sysctl.conf
,
sudo nano /etc/sysctl.conf
Если у вас есть каталог sysctl.d
, но нет файла sysctl.conf
, создайте новый файл:
sudo nano /etc/sysctl.d/35_swap.conf
и в обоих случаях добавьте:
# change "swappiness" from default 60 to 10
# (theoretically only swap when RAM usage reaches around 80 or 90 percent)
vm.swappiness = 10
в конец файла , сохраните файл ( Ctrl + X Y + введите в нано) и выполните команду:
sysctl --system
, чтобы перезагрузить параметр или открыть окно $ подход и перезагрузка ... : -)
Необходимость подкачки
Подкачка полезна по трем причинам:
Удаление беспорядка из ОЗУ. Из статьи на kernel.org:
«Значительное количество страниц, на которые ссылается процесс на ранней стадии его жизнь может использоваться только для инициализации, а затем никогда не использоваться очередной раз. Лучше поменять местами эти страницы и создать больше диска буферы, чем оставить их резидентными и неиспользуемыми »
Другими словами, данные, хранящиеся в ОЗУ, могут быть полезны только тогда, когда процесс был запущен (например, процесс запуска), а затем просто хранятся там в ОЗУ, загромождая пространство, которое может быть используется для лучших целей.
Он увеличивает объем памяти, который могут использовать процессы. Это хорошо понятно. Вы не хотите, чтобы система исчерпывала память и аварийно завершала работу из-за ее нехватки.По этой конкретной причине своп должен существовать в качестве защитной функции.
Спящий режим: когда компьютер переходит в спящий режим, содержимое ОЗУ отправляется на диск.
Объем подкачки
Знание цели для подкачки и в зависимости от объема оперативной памяти вашего компьютера вы можете выбрать размер подкачки, который соответствует вашим целям. Нет конкретных рекомендаций, только практические правила , которые вы можете использовать, чтобы адаптировать размер свопа к вашей системе .
Например, linux.com рекомендует:
Практическое правило выглядит следующим образом: 1) для настольной системы используйте swap пространство двойной системной памяти, так как это позволит вам запустить большой количество приложений (многие из которых могут простаивать и легко swapped), делая больше оперативной памяти доступной для активных приложений; 2) для сервера иметь меньший доступный объем подкачки (скажем, половина физическая память), так что у вас есть некоторая гибкость для замены, когда необходимо, но следите за объемом используемого пространства подкачки и обновляйте оперативную память если необходимо; 3) для старых настольных компьютеров (скажем, всего 128 МБ) используйте столько места подкачки, сколько вы можете сэкономить, даже до 1 ГБ.
Исходя из личного опыта, вот что я бы сделал:
Рассмотрим машину с 1–2 ГБ, которой не нужно переходить в спящий режим, и для случайного использования , у вас может быть от 1 до 2 ГБ пространства подкачки. Мой компьютер с 14.04 Ubuntu имеет 1 ГБ ОЗУ и 2 ГБ подкачки. Сумма свопа никогда не выходит за пределы 800 МБ, и я использую свой компьютер только для просмотра веб-страниц и написания сценариев.
Для ПК с объемом памяти более 2 ГБ, и вам не нужно переходить в спящий режим, вы можете сохранить свопинг с 512 МБ на 1 ГБ. У меня есть ноутбук с версией 15.04, который я никогда не переходил в спящий режим и в котором есть файл подкачки (, а не раздел ) размером 512 МБ. Сама оперативная память составляет 6 ГБ, но никогда не превышает 2-3 ГБ. Опять же: случайное использование.
Cosmoscalibur и Fabby уже обратились к свопу на случай, если вам понадобится спящий режим, поэтому я не буду вдаваться в подробности. Мое скромное мнение таково:
Если вы планируете переходить в спящий режим, содержимое ОЗУ нужно будет выгрузить, следовательно, вам потребуется как минимум того же размера, что и ваша ОЗУ.