Раздел подкачки и виртуальная память в Unix и Linux
Если у вас закончилась реальная память, у Linux есть система виртуальной памяти, которая автоматически перемещает страницы памяти (участки памяти) на жесткий диск и с жесткого диска. Это называется подкачкой (swapping), потому что страницы незанятых программ перекачиваются на диск в обмен на активные страницы, находящиеся на диске. Пространство на диске, используемое для хранения страниц памяти называется пространством подкачки (swapping space).
Командный вывод Swap:free включает в себя текущее использование подкачки в килобайтах как приведено ниже:
total — 514074, used — 189604, free — 324470
Разбиение диска для создания раздела подкачки в Unix
Чтобы использовать весь сегмент диска как подкачку, следуйте этим этапам:
1. Убедитесь, что раздел пуст.
2. Запустите mkswap dev, где dev это устройство сегмента. Команда поместит метку подкачки на этот сегмент.
3. Запустите на исполнение swapon dev, чтобы зарегистрировать пространство в ядре.
После создания сегмента подкачки, вы можете поместить новую запись подкачки в ваш /etc/fstab, чтобы система использовала пространство для подкачки при загрузке компьютера. Эта запись из примера fstab приведенной ранее:
/dev/hda2 none swap sw 00
Использование файла как пространства для подкачки
Вы также можете использовать постоянный файл в качестве пространства для подкачки. Это будет работать не так быстро как раздел подкачки, но если у вас нет другого выхода, и вам придется переразбивать диск, чтобы использовать сегмент для подкачки, использование файла как пространства для подкачки тоже сгодится.
Воспользуйтесь этими командами, чтобы создать пустой файл, инициализируйте его как подкачку и добавьте его в накопитель подкачки:
dd if=/dev/zero of=swaping_file bs=1024.k count=size_mb mkswap swaping_file swapon swaping_file
В этом примере, swaping_file — это имя нового файла подкачки, и size_mb — это желаемый размер в мегабайтах.
Чтобы удалить раздел или файл подкачки из активного накопителя ядра, воспользуйтесь командой swapoff.
Сколько места для подкачки вам нужно?
Раньше, народная мудрость Unix гласила, что вам нужно запасаться пространством для подкачки по крайней мере вдвое большим относительно размера оперативной памяти. Огромная вместительность диска и памяти доступные на сегодняшний день все изменили. С одной стороны, пространства на диске стало так много, что удвоение количества памяти выглядит недостаточным, из-за доступного количества пространства на диске. С другой стороны, вы можете даже и не углубиться в свое пространство для подкачки, так как у вас настолько много реальной оперативной памяти.
Тем не менее, некоторые вещи никогда не меняются. Запасайтесь для подкачки пространством от двух до пяти раз большим, чем объем вашей реальной оперативной памяти. Не имеет смысла делать меньше, потому что может возникнуть риск нехватки памяти. Если вы решите сделать больше и действительно собираетесь использовать все свое пространство для подкачки, у вас могут возникнуть серьезные проблемы с рабочими характеристиками, поскольку ваша операционная система станет выполнять избыточное число операций чтения/записи в сектор подкачки (явление, известное как трешинг) в ущерб производительности.