Яка мета декількох файлів підкачки


28

Під час встановлення більшості (якщо не всіх) дистрибутивів Linux, жорсткий диск розділяється на типовий розділ за замовчуванням.

Можна змінити таку поведінку за допомогою swapon -p priority

За даними сторінок, пріоритетним є:

PRIORITY
Each swap area has a priority, either high or low. The default priority is 
low. Within the low-priority areas, newer areas are even lower priority 
than older areas.
All priorities set with swapflags are high-priority, higher than default. 
They may have any non-negative value chosen by the caller. Higher numbers 
mean higher priority.

Swap pages are allocated from areas in priority order, highest priority 
first. For areas with different priorities, a higher-priority area is 
exhausted before using a lower-priority area. If two or more areas have the 
same priority, and it is the highest priority available, pages are 
allocated on a round-robin basis between them.

As of Linux 1.3.6, the kernel usually follows these rules, but there are 
exceptions

Навіщо вам колись потрібно більше одного файлу своп?
Чи загальноприйнята практика для системних адміністраторів налаштовувати більше однієї заміни?

Відповіді:


47

Існує так багато причин, щоб мати кілька областей підкачки (вони не повинні бути файлами), навіть якщо у вас є лише одне шпиндель.

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? Немає проблеми, брудний збоченець). Це нішеві сценарії та призначені для підтримки вимог до ніш.


Дякую, я не знайомий із записом бітових зон. Мені цікаво, що я
перенесу

1
Я додам історичну причину того, що раніше використання одного диска як пристрою для заміни іноді було неефективним, оскільки він використовував занадто багато місця, а решту диска він робив марним або менш корисним, а також розділяв місцями для заміни на декілька пристроїв забезпечив компроміс між великим розміром місця та кількістю доступного суміжного простору на диску.
Діді Коен

Це все ще так. Крім того, ви можете захотіти, щоб ваша заміна займала найшвидшу зону диска, і тільки це. Що дає лише стільки місця для гри на шпинделі. Хоча це не було так історично, тому що зумовані жорсткі диски - це «нова» річ. (моя версія "історичного" - це коли пам'ять вимірювали словами)
Алексіос,

+1 за "Ви завжди можете стріляти собі в ногу з Unix" :-)
DUzun

3

Багатошвидкісні дисководи. Ви можете налаштувати швидший, який буде використовуватися спочатку, а потім повільніший, якщо той не вдався.


3

Ви не можете розширювати свопфіли (принаймні, наскільки я знаю) або міняти розділи, поки вони використовуються. Якщо ви перебуваєте на межі заповнення наявної вами області свопів, можливо, вам доведеться створити додаткові свопфіли.

Крім того, якщо системі потрібно 4 Гб місця для обміну і має два накопичувачі 2 Гб, вона повинна використовувати щонайменше дві області обміну.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.