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