next up previous contents index
Дал╕: Використання своп╕н╜у Вгору: Керування пам'яттю Назад: Що таке в╕ртуальна пам'ять?

Створення простору для своп╕н╜у

Файл для своп╕н╜у - це самий звичайний файл з точки зору ядра. ╢дина р╕ч, яка ма╓ значення для ядра, це те, що цей файл не ма╓ д╕рок ╕ що в╕н приготований для своп╕н╜у командою mkswap . Однак, цей файл повинен бути на локальному диску, тобто не може знаходитись на файлов╕й систем╕ NFS105.

Зам╕тка про д╕рки ╓ важливою. Своп-файл створю╓ться на диску таким чином, що ядро ма╓ можлив╕сть швидко ``скинути'' стор╕нку з пам'ят╕ на диск, не проходячи через весь процес вид╕лення сектора на диску. Оск╕льки д╕рка в файл╕ означа╓, що для певного шматка файлу не зарезервовано блок╕в на диску, ядро буде записувати ╕нформац╕ю в не╕снуюч╕ блоки (можливо зайнят╕ ╕ншими файлвми).

В╕рний спос╕б для створення файлу своп╕н╜у ╓ такий:

$ dd if=/dev/zero of=/extra-swap bs=1024 count=1024
1024+0 records in
1024+0 records out
$

де /extra-swap  - це назва файлу, призначеного п╕д своп╕н╜, а його розм╕р дано п╕сля count=. Краще всього, якщо розм╕р буде кратний чотирьом, бо ядро скида╓ у своп-файл стор╕нки пам'ят╕ розм╕ром в 4 к╕лобайти. Якщо розм╕р буде не кратним 4, то останн╕ к╕лька к╕лобайт не будуть використан╕. П╕дрозд╕л для своп╕н╜у теж ╓ самим звичайним п╕дрозд╕лом. В╕н створю╓ться точн╕с╕нько, як будь-який ╕нший п╕дрозд╕л. ╢диною в╕дм╕нн╕стю ╓ те, що в╕н використову╓ться як сирий диск - без файлово╖ системи на ньому. Краще, якщо п╕дрозд╕л, призначений п╕д своп╕н╜ буде мати тип 82 - Л╕накс своп-п╕дрозд╕л. Нав╕ть при тому, що ядро не зверта╓ уваги на типи розд╕л╕в, така установка зробить список п╕дрозд╕л╕в трохи ч╕тк╕шим.

П╕сля створення або файлу або п╕дрозд╕лу для своп╕н╜у, на ньому потр╕бно записати ``п╕дпис''106 своп-файлу. Цей п╕дпис м╕стить деяку адм╕н╕стративну ╕нформац╕ю ╕ в╕н використову╓ться ядром. Команда для створення такого п╕дпису ╓ mkswap :

$ mkswap /extra-swap 1024
Setting up swapspace, size = 1044480 bytes
$

В╕дм╕тимо, що нав╕ть п╕сля ц╕╓╖ операц╕╖ своп-прост╕р все ще не використову╓ться - в╕н ╕сну╓, але ядро не використову╓ його як в╕ртуальну пам'ять.

Будьте дуже обережними при використанн╕ команди mkswap , оск╕льки вона не перев╕ря╓, чи використову╓ться цей дисковий прост╕р чимось ╕ще. Ви можете запросто знищити важлив╕ файли ╕ ц╕л╕ розд╕ли диску ц╕╓ю командою На щастя командою mkswap  потр╕бно користуватися т╕льки при встановленн╕ системи. Менеджер пам'ят╕ Л╕накса обмежу╓ розм╕р кожно╖ д╕лянки своп-простору до приблизно 127 МБайт (з р╕зних техн╕чних причин справжн╕й розм╕р ╓ $(4096-10)\times 8\times 4096 =
133890048$ байт чи 127,6875 мегабайт). Однак, можна користуватися ш╕стнадцятьма такими розд╕лами одночасно, що робить максимальний розм╕р простору для своп╕н╜у р╕вним приблизно 2 ╫╕╜абайтам.107



Dmytro Kovalev
1999-06-10