Существует множество причин иметь несколько областей подкачки (они не обязательно должны быть файлами), даже если у вас только один шпиндель.
20-20 задним числом: вы развернули машину с одной областью подкачки, а затем поняли, что этого недостаточно. Вы не можете повторно развернуть машину по своему усмотрению , но вы можете создать другую область подкачки (возможно, файл), пока не будет изменена схема размещения разделов.
Изменение размера или перемещение областей подкачки: Вы не можете изменить размеры областей подкачки (как упомянул Эван Тейтельман ). И вы не можете просто swapoff
создать новую область подкачки, а затем еще swapon
раз, если у вас недостаточно ОЗУ: вы swapoff
хотите переместить все выгруженные страницы в ОЗУ, прежде чем освободить область подкачки. Таким образом, вы создаете временную область подкачки, swapoff
оригинал, подождите, пока все страницы не переместятся из старой области подкачки во временную, измените размер исходного раздела подкачки, mkswap
его, затем swapon
измененного размера и swapoff
временного. Измененные страницы копируются из области временного обмена в область с измененным размером, и все готово. Если вы перемещаете области подкачки, вам даже не нужна временная область. mkswap
новый, swapon
то, тоswapoff
старый и все переехал.
Сумасшедшая быстрая замена: современные диски используют зональную запись битов . Первая зона диска самая быстрая. Вы можете измерить диск и создать раздел, охватывающий ровно первую, самую быструю зону диска. Это может быть меньше, чем ваш предполагаемый размер свопа. Таким образом, вы добавляете несколько разделов на несколько дисков, используя одну и ту же технику.
Сумасшедшая быстрая замена, продолжение: в качестве альтернативы, когда вы знаете, где находятся самые быстрые зоны ваших дисков, вы можете сделать области обмена с высоким приоритетом в первой зоне, области обмена с более низким приоритетом во второй зоне и т. Д. Таким образом, ваша система обмена автоматически узнает чтобы распределить нагрузку по всем зонам быстрого диска, отдать предпочтение более быстрым зонам и использовать более медленные зоны в качестве области переполнения при необходимости.
Симметричное распределение нагрузки: в хорошо скомпонованной системе с большим количеством шпинделей (например, на сервере) мне бы хотелось иметь несколько разделов подкачки, занимающих начало каждого диска (чтобы воспользоваться возможностью записи битов зоны ). Все они имеют одинаковые приоритеты, поэтому ядро будет балансировать нагрузку подкачки. Один шпиндель может дать вам 100 МБ / с, но обмен по всем шпинделям может дать вам кратное количество. (наивно говоря)
Балансировка нагрузки с учетом узких мест : на практике, однако, существуют и другие узкие места. Так, например, 16-дисковый сервер может иметь четыре порта SATA 6 Гбит / с, каждый с четырехпортовым умножителем и четырьмя дисками, разделяющими полосу пропускания. Если вы знаете об этом, вы можете организовать пространство подкачки таким образом, чтобы диск 1 на портах 1–4 имел наивысший приоритет, вторые диски на портах 1–4 имели второй наивысший приоритет и т. Д. Это приведет к перестановке баланса нагрузки, но не приведет к перегрузке мультипликаторы портов.
Переключение между устройствами с разной производительностью: (как упомянул Люк), если ваша система не является совершенно новым сервером и органически разрослась за эти годы, у нее могут быть блокирующие устройства, которые значительно быстрее других. Сначала вы захотите переключиться на самое быстрое устройство, затем на следующее самое быстрое и т. Д.
Соображения относительно размера: (любезно предоставлено Дэвидом Коэном ), возможно, размещение всего вашего подкачки на одном диске освобождает несколько дисков бесплатно (это звучит как сценарий 2001 года, но есть много старых или встроенных устройств, где это может быть проблемой). Распределите его по всем дискам и вдобавок ко всем другим преимуществам, указанным выше, вы получите лучшее использование дискового пространства для каждого диска. Одно дело потерять пару гигов на шпиндель, а другое - потерять 300 гигов с одного диска.
Чрезвычайные ситуации: у вас есть ровно 96 часов, чтобы представить свою кандидатскую диссертацию, и ваш последний эксперимент (который может принести вам этот Нобелевский приз, а также смешные буквы в смешанном регистре после вашего имени) высасывает память с впечатляющими показателями. У тебя почти нет свопа. Вы создаете файл подкачки с приоритетом, меньшим, чем приоритет вашего основного устройства подкачки - ядро будет использовать его как пространство подкачки переполнения. Вы даже можете установить swapd, чтобы сделать это для вас автоматически, так что у вас также будет достаточно места для подкачки для этих огромных emacs
и LaTeX-прогонов.
Переключение между разными носителями: Linux не может переключаться на символьные устройства, но есть много разных носителей, физических и виртуальных: твердотельные накопители (примечание: вы, вероятно, не хотите менять местами на твердотельных накопителях), десятки поразительно разных типов крутого вращения диски, дискеты (да, вы можете поменять их на дискете - вы всегда можете выстрелить себе в ногу с Unix), тома DRBD, тома iSCSI, LVM, зашифрованные разделы LUKS и т. д. (включая сюрреалистические, ошеломляющие многоуровневые комбинации этих - поменяйте местами LUKS на LVM на ZIP-диске с параллельным портом через iSCSI через IEEE802.3 и агрегированный Ethernet? Нет проблем, грязный извращенец). Это нишевые сценарии, и они предназначены для поддержки нишевых требований.