Сколько подкачки я должен взять для 1 ГБ к 8 ТБ RAM на 14,04 или выше?

Я собираюсь установить 64 бита 14.04 на новой машине с чем-то как 1 к, возможно, 128 ГБ RAM и еще большего количества RAM позже. Сколько места я должен выделить к разделу подкачки?

И особенно: ПОЧЕМУ те рекомендации для этих чисел?

(Ни один из существующих ответов здесь и здесь не объясняет ни одного из, почему и немного датированы, если мы смотрим на 1 ГБ или RAM и),

16
задан 20 October 2018 в 12:06

2 ответа

Краткий ответ:

Установите для файла подкачки

  • round (sqrt (RAM)) , если вы не используете гибернация
  • ОЗУ + раунд (sqrt (RAM)) если вы действительно используете спящий режим

Установите для swappiness 10 на рабочем столе, но не на сервере!

Длинный ответ:

В прошлом:

Практическое правило, используемое за последние 25 лет, было минимум 1xRAM и максимум 2xRAM , так что это то, что вы будете постоянно цитировать.

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

Максимум был установлен в то время из-за уменьшения отдачи: слишком медленно менять столько памяти, так как доступ к жесткому диску в 1000 раз медленнее, чем ОЗУ: хорошо в чрезвычайной ситуации, но не совсем хорошо для повседневного использования! В то время, когда у вас закончилось пространство подкачки, пришло время добавить больше оперативной памяти! (что актуально и сегодня).

В настоящее время:

  1. Если вы не используете спящий режим и ваша память превышает 1 ГБ, новое практическое правило - round (sqrt (RAM)) где RAM - это, очевидно, размер вашей RAM в ГБ, а sqrt - квадратный корень. : -)

  2. Если вы используете гибернацию, вам нужно иметь возможность переставить весь объем ОЗУ + уже переставленную ОЗУ на диск, поэтому формула будет выглядеть так: ОЗУ + раунд (sqrt (RAM))

  3. Правило убывающей отдачи по-прежнему сохраняется для максимума, но , если вы не проверите фактическое использование, использование 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

, чтобы перезагрузить параметр или открыть окно $ подход и перезагрузка ... : -)

32
ответ дан 23 November 2019 в 03:51

Необходимость подкачки

Подкачка полезна по трем причинам:

  1. Удаление беспорядка из ОЗУ. Из статьи на kernel.org:

    «Значительное количество страниц, на которые ссылается процесс на ранней стадии его жизнь может использоваться только для инициализации, а затем никогда не использоваться очередной раз. Лучше поменять местами эти страницы и создать больше диска буферы, чем оставить их резидентными и неиспользуемыми »

    Другими словами, данные, хранящиеся в ОЗУ, могут быть полезны только тогда, когда процесс был запущен (например, процесс запуска), а затем просто хранятся там в ОЗУ, загромождая пространство, которое может быть используется для лучших целей.

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

  3. Спящий режим: когда компьютер переходит в спящий режим, содержимое ОЗУ отправляется на диск.

Объем подкачки

Знание цели для подкачки и в зависимости от объема оперативной памяти вашего компьютера вы можете выбрать размер подкачки, который соответствует вашим целям. Нет конкретных рекомендаций, только практические правила , которые вы можете использовать, чтобы адаптировать размер свопа к вашей системе .

Например, 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 уже обратились к свопу на случай, если вам понадобится спящий режим, поэтому я не буду вдаваться в подробности. Мое скромное мнение таково:

Если вы планируете переходить в спящий режим, содержимое ОЗУ нужно будет выгрузить, следовательно, вам потребуется как минимум того же размера, что и ваша ОЗУ.

6
ответ дан 23 November 2019 в 03:51

Другие вопросы по тегам:

Похожие вопросы: