Почему рекомендуется, чтобы размер раздела подкачки был в два раза больше размера оперативной памяти?
В частности, зачем мне нужно хранить данные, хранящиеся в оперативной памяти дважды?
Раздел подкачки с двойным объемом памяти - это просто общее правило, а не жесткое и быстрое правило. Вам понадобится как минимум 1-кратный объем памяти, если вы зависаете на диск (в режиме гибернации), и добавляете достаточно запасного для использования «подкачанной» памяти, которая выходит за рамки вашей физической. Следовательно, рекомендуется от 1,5 до 2 раз.
Я думаю, что это также зависит от характера использования вашего приложения и размера вашей физической памяти и т.д. Если у вас есть что-то более 2 ГБ ОЗУ и большую часть времени вы используете приложения, не требующие большой памяти, вам может вообще не понадобиться раздел подкачки, не большой в любом случае.
Наличие большого файла подкачки и медленного жесткого диска может быть очень проблематичным для вашей системы.
Вот несколько полезных прочтений:
Ubuntu SwapFAQ
SUperuser - размер раздела подкачки для 4 ГБ ОЗУ
Нужен ли раздел подкачки и насколько большой?
Это старое эмпирическое правило, которое, я думаю, больше не имеет смысла, потому что в настоящее время это может равняться абсурдному объему обмена по отношению к скорости хранилища.
Минимальный объем свопа, который вы должны иметь, - это типичное использование в устойчивом состоянии. (Это количество достигается после продолжительного времени безотказной работы, когда большая часть доступной памяти состоит из кэша страниц. Защита свопа - это хорошее чтение.)
Но я здесь, чтобы сказать вам, что есть максимум ... если отзывчивость является проблемой вообще.
Сценарий рабочего стола: как правило, то, что происходит, когда у вас заканчивается память (например, при случайном отключении вилочной бомбы, такой как make -j
), выглядит следующим образом: во-первых, вы заметили немного замедленный пользовательский интерфейс, что означает, что у вас есть примерно минута убить оскорбительный процесс до того, как указатель мыши перестанет отвечать на запросы. Но это только начало! Вы видите, то, что компьютер будет сидеть там с его SSD LED горит постоянно, вспенивание через остальную часть его пространства подкачки, в течение нескольких десятков минут до нескольких часов, в то время как вы не можете делать ничего ( за исключением , может быть , потянув за вилку). В этот момент вы поклянетесь, что хотели, чтобы убийца ООМ включился чуть раньше, вместо того, чтобы тратить свой день.
Таким образом, наличие смешного количества пространства подкачки, которое вы обычно не используете, на самом деле плохо с точки зрения доступности - оно просто задерживает неизбежное в случае катастрофической утечки памяти (такой, что OOM неизбежна), в течение которой ваш компьютер , для всех практических целей, недоступно.
Я обычно беру ½-2 ГБ подкачки, независимо от того, сколько оперативной памяти у компьютера.
В частности, зачем мне нужно хранить данные, хранящиеся в оперативной памяти дважды?
Своп просто для освобождения системной памяти. Если вы начинаете исчерпывать память, система освобождает память, перемещая наименее используемые данные из памяти в файл подкачки жесткого диска. Это, конечно, снижает скорость, но освобождает память для других приложений.
Так как память настолько дешева, вам всегда лучше иметь столько, сколько вы можете себе позволить. Таким образом, своп получает очень ограниченный доступ, и ваша система остается красивой и быстрой.
При большем объеме подкачки программы могут использовать больше оперативной памяти, чем имеется на компьютере. Это возможно потому, что даже если данные занимают больше места, чем помещаются в физическую память одновременно, к ним нельзя получить доступ сразу - своп помещается в физическую память по мере необходимости. Альтернативой является случайное уничтожение программ при нехватке памяти. Это особенно полезно, если вы хотите редактировать изображения или видео с высоким разрешением, выполнять трехмерное моделирование или рендеринг или выполнять численный анализ больших объемов данных, существует множество видов программ, которые в конечном итоге нуждаются в безумных объемах ОЗУ, где лучше иметь возможность работать очень медленно, чем вообще не работать без сбоев.