Важность раздела подкачки

  • Для чего нужен раздел подкачки?
  • Как узнать, что у меня достаточно раздела подкачки? Не слишком много / мало.

Мой Ubuntu PC используется для типичных вещей:

  • Интернет (электронная почта, Facebook и т. Д.)
  • В некоторых фильмах
  • игры встречаются редко
34
задан 3 August 2014 в 20:23

6 ответов

  • Область подкачки - это часть пространства жесткого диска, используемая для поддержки ограниченного объем оперативной памяти. Размер ОЗУ ограничен, поэтому некоторым приложениям требуется RAM больше, чем доступное пространство RAM, в этом случае это пространство подкачки также называется виртуальной памятью, используемой для поддержки RAM.
  • Она медленнее по скорости по сравнению со скоростью RAM. Когда мы запускаем большой приложение, а затем наименее недавно использованная часть этого приложения в области подкачки на жестком диске, он заменяется обратно с Поменяйте местами область, когда это необходимо. Это дает операционной системе ощущение просто иметь больше ОЗУ, чем есть на самом деле.
  • Это выделенный раздел на жестком диске, созданный при установке операционной системы.
  • Хорошо, если создать область подкачки, вдвое превышающую размер ОЗУ.
  • Вы можете проверить используемый и доступную область подкачки с помощью следующей команды:

     $ cat / proc / swaps
    Имя файла Тип Размер Используемый приоритет
     / dev / sda10 раздел 7812092 16-1
     
0
ответ дан 3 August 2014 в 20:23

здесь очень глубокая информация о swap

некоторые люди говорят, что двойной таран, но лично я рекомендую это :

swap = 1.5 X Total Ram

Пример:

если у вас 2 Гб тарана -> swap = 1.5 x 2 = 3

P.D: Рабочий стол Ubuntu использует замену в спящем режиме (ПК выключен, питание не требуется, состояния программы сохранены). Если для вас важна спячка, то у вас больше места для подкачки, чем таран + переполнение подкачки.

4
ответ дан 3 August 2014 в 20:23

Команда free может подсказать вам, сколько вы используете своп. Например, на этой машине:

$ free -m
             total       used       free     buffers     cached
Mem:          1947       1863         84         312        758
-/+ buffers/cache:        792       1154
Swap:         4000          3       3997

показывает мне, что у меня 2 ГБ (1947m) оперативной памяти и что система использовала большую её часть. Однако, 312м используется для буферов ввода/вывода, а остальное (758м) система решила заполнить дисковым кэшем.

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

Поэтому есть вторая строка, показывающая, что если бы не было буферизации и кэша, у меня была бы доступна половина моей оперативной памяти (1154 м).

Третья строка показывает, что у меня слишком большой раздел подкачки (он был там и ничего не делал), из которого было использовано колоссальное количество 3м. Это вещи, которые ядро действительно не ожидает использовать в ближайшее время, так что он застрял на "заднем крыльце".

В то время как free дает вам снимок сейчас, vmstat может дать вам бегущую картинку:

$ vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 0  0   3588  86236 316524 769132    0    0    14    13  126   81  4  1 95  0
 0  0   3588  83872 316532 770512    0    0     0    20  264 1229  3  1 96  0

Там много информации, но интересен тот факт, что нет swap-in (si) или swap-out (so) трафика. А это значит, что за последние 10 секунд я вообще не использую своп.

2
ответ дан 3 August 2014 в 20:23

Раздел подкачки служит паре целей.

  • Он служит в качестве "резервной" оперативной памяти. То есть, если на вашем компьютере закончится оперативная память, он будет использовать область подкачки как временный источник дополнительного объема памяти. Если говорить точнее, он будет "подкачивать" неиспользуемые элементы из оперативной памяти в область подкачки, чтобы оставить свободное место для приложений, которые нуждаются в ней в данный момент. Это не идеально, так как скорость передачи данных на жесткий диск значительно ниже, чем скорость передачи данных в обычную оперативную память. На практике это означает гораздо более медленное извлечение информации из области подкачки.

  • Она используется, когда компьютер находится в спящем режиме. Спячка включает в себя получение образа оперативной памяти в ее текущем состоянии (подобно тому, как ISO представляет образ), и сохранение его в области подкачки. Затем он перезагружает этот образ при перезагрузке компьютера.

  • Чтобы быть наиболее полезным, область подкачки должна быть как минимум (ОЗУ * 1.5), хотя рекомендуется больше. Например, на моей системе с 3gb оперативной памяти, у меня есть область подкачки 7.2gb.

15
ответ дан 3 August 2014 в 20:23

Это очень близко к тому же вопросу об "правильном" размере раздела подкачки, что и . Большая часть той же информации из моего ответа там - в основном, если вы хотите впасть в спячку, вы обычно хотите, чтобы ваше пространство подкачки было как минимум таким же большим, как ваша оперативная память, и кроме того, круглого числа вроде 1 или 2 Гб вполне достаточно. Поскольку подкачка намного медленнее оперативной памяти, если вы заполняете несколько гигабайт подкачки, ваш компьютер почти наверняка стал необычайно медленным.

Также нет никакой реальной необходимости в разделе подкачки - файлы подкачки (доступные в основных файловых системах linux) дают одинаковую производительность и позволяют тривиально легко добавить больше места подкачки, если вы решите, что у вас недостаточно.

7
ответ дан 3 August 2014 в 20:23

У меня ноутбук с медленным жестким диском, но относительно большим объемом оперативной памяти (8 ГБ). В этой настройке я считаю, что подкачка диска неэффективна по следующим причинам:

  1. Восстановление приложений из подкачки происходит медленно , сравнимо с загрузкой приложения с нуля. Я бы предпочел среду, которая быстро реагирует, даже если это означает, что мне иногда приходится закрывать и перезагружать приложения, чем среду, которая иногда неожиданно останавливает меня.

  2. Если бы я хотел иметь возможность переходить в спящий режим, это означало бы много писать данных на диск. Это было бы постоянным расходом заряда батареи , если бы это выполнялось постоянно (поведение по умолчанию swappiness 60), или если бы это было сделано только во время гибернации (за счет уменьшения swapiness), тогда для фактического перехода в спящий режим потребуется много времени. Я обнаружил, что приостановка для ОЗУ вместо приостановки на диск вполне удовлетворительна. Он мог оставаться приостановленным в течение нескольких дней, и он мог бы выйти из этого режима гораздо быстрее, чем полный спящий режим.

  3. Поскольку жесткий диск работает медленно, я предпочитаю зарезервировать 1 ГБ ОЗУ для дискового кеша , эффективно обменивать память на скорость. Это позволяет моей машине работать быстро, но это означает, что я могу использовать только 7 ГБ из 8 ГБ оперативной памяти для приложений. Программное обеспечение, которое я использую для этого, представляет собой форк earlyoom , который убивает старые вкладки браузера, когда используется 88% оперативной памяти. Иногда мне приходится перезагружать старые вкладки браузера, которые были отключены.

Когда этот совет не применим?

  • Если у вас есть быстрый жесткий диск или SSD, и у вас меньше проблем насчет разряда батареи, то к недостаткам, которые я изложил выше, относиться не будем. (Хотя ранние твердотельные накопители могут иметь проблемы с износом, я считаю, что с любыми твердотельными накопителями, проданными с 2018 года, все будет в порядке.)

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

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

Предостережение:

  • Некоторое программное обеспечение, которое мы оставляем запущенным на долгое время (особенно ОС и среда рабочего стола), будет загружать код в память, которая больше никогда не будет использоваться. Эти страницы можно перемещать для обмена, и их больше никогда не нужно будет вытаскивать, что позволяет избежать упомянутых ранее недостатков. По этой причине я иногда создаю небольшой файл подкачки размером 512 МБ или 1 ГБ и позволяю выгружать неиспользуемые страницы памяти. Это просто оставляет мне немного больше оперативной памяти для приложений. (Требуется: метод измерения оттока подкачки, чтобы помочь настроить размер этого файла подкачки.)
0
ответ дан 3 August 2014 в 20:23

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

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