1 2 3 4 5 6 7 8 9 10 11 12 13 |
Раздел подкачки может быть создан либо на стандартном разделе жесткого диска, либо на специально отформатированном для этого разделе. mkswap /dev/sda4 - Форматирует раздел sda4 как раздел подкачки mkswap -с /dev/sda4 - проверить раздел подкачки на наличие поврежденных блоков dd if=/dev/zero of=/tmp/swapfile - создание пустого файла /tmp/swapfile chmod 600 /tmp/swapfile - выставляем права 600 mkswap /tmp/swapfile - созидание файловой системы для swap swap -s - отобразить все разделы подкачки swapon /tmp/swapfile - включить swap и swapon -v /tmp/swapfile - включить swap и отобразить больше информации swapon /dev/sda1 - включить раздел подкачки на /dev/sda1 swapoff -v /tmp/swapfile - отключить раздел подкачки /tmp/swapfile swapon -v -p 1 /dev/sda1 - назначает разделу sda1 высший приоритет подкачки |
Создание нового раздела:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
!!! Чтобы не замедлять работу системы, старайтесь создавать на жестком диске только один раздел подкачки. !!! В идеальном случае такой раздел должен находиться на мало используемом или неиспользуемом диске. Создание нового раздела подкачки. Если вы создали слишком маленький раздел подкачки или вам по каким-либо причинам понадобится еще один, создайте новый раздел (например, командой fdisk). В качестве типа диска укажите Linux swap (82 в fdisk). Отформатировав раздел с помощью команды mkswap, вы можете активировать его командой swapon. Если все получится, дополните файл /etc/fstab. mkswap /dev/hda3 - создание swap-пространство на разделе hda3 swapon /dev/hda3 - включить swap-пространство, расположенное на разделе hda3 swapon /dev/hda2 /dev/hdb3 - активировать swap-пространства, расположенные на разделах hda2 и hdb3 |
Файл подкачки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
!!! Учитывайте что файлы подкачки не поддерживаются в файловой системе btrfs! Чтобы не использовать раздел подкачки, вы можете выгружать память в отдельный файл подкачки. Конечно, это решение на крайний случай, так как из-за такой операции замедляется доступ к файловой системе. Единственное достоинство файла подкачки заключается в том, что для него не требуется отдельный раздел. Обычно файлы подкачки сохраняются в разделе /dev. В первую очередь создаем командой dd пустой файл заданного размера. При этом в качестве источника данных используется /dev/zero. Из этого устройства можно считать сколько угодно нулевых байт. Размер нужно указывать в блоках, причем каждый блок равен 1024 байт. Кроме того, файл подкачки, подобно разделу подкачки, форматируется командой mkswap и активируется с помощью swapon. В следующем примере мы создадим маленький файл подкачки размером около 1 Мбайт: dd bs=1024 if=/dev/zero of=/swapfile count=1000 mkswap /swapfile 1000 sync swapon -v /swapfile Файлы подкачки можно указать в fstab, как и разделы подкачки: /etc/fstab /swapfile none swap sw 0 0 |
Работа оперативной памяти в linux
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Если оперативной памяти недостаточно для выполнения всех программ и в вашем распоряжении есть файлы и разделы подкачки, Linux задействует их в качестве дополнительной памяти (страничная организация памяти). Таким образом, Linux может использовать больше памяти, чем доступно в RAM. Обычно раздел подкачки создается при установке. Чтобы проверить, есть ли в вашем распоряжении виртуальная память и, если есть, то сколько (имеется или действительно применяется), выполните команду free. В следующем примере имеем 1519 Мбайт RAM и 2000 Мбайт виртуальной памяти. В настоящее время, согласно примеру, используется 401 Мбайт RAM для работы с программами и данными, остаток применяется как файловый буфер (кэш). Виртуальная память пока не задействуется. free -m total used free shared buffers cached Mem: 1519 1479 39 0 67 1010 -/+ buffers/cache: 401 1117 Swap: 2000 0 2000 Если компьютер работает длительное время, ему рано или поздно придется использовать виртуальную память, даже если у вас в распоряжении еще достаточно RAM. Причина проста: ядро управляет кэшем для предоставления доступа к файлам «для чтения»; если позже понадобится какой-либо файл, его можно считать из кэша. Как только кэш превышает по размеру свободную оперативную память, Linux выгружает блоки памяти, которые давно не применялись, в раздел подкачки. Это совсем не означает, что осталось мало памяти. Linux просто пытается использовать имеющуюся память как можно более эффективно. |
Управление работой виртуальной памяти:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Если памяти в RAM начинает не хватать, ядро Linux применяет достаточно сложный алгоритм, позволяющий решить, следует ли открыть доступ к кэш-памяти для решения новых задач либо лучше выгрузить в раздел подкачки последние неиспользованные области памяти. Параметр ядра /proc/sys/vm/swappiness позволяет вам указать, что должно делать ядро в случае выбора — уменьшить кэш или выгрузить данные. Стандартная настройка для swappiness равна 60, диапазон возможных значений: от 0 до 100. Значение 0 означает, что ядро по возможности не будет использовать постраничную организацию памяти; 100 говорит о том, что области памяти, не применяемые долгое время, будут отправляться в раздел подкачки как можно раньше. Более подробно параметр swappiness описан на сайтах http://lwn.net/Articles/83588/ и http://kerneltrap.org/node/3000. На практике вы заметите работу разделов подкачки только тогда, когда оставите компьютер работать на всю ночь и за это время программа обратится к большому количеству файлов на диске (это может быть, например, сценарий для резервного копирования или программа для составления поискового индекса). Поскольку обращений к файлам много, кэш значительно увеличивается. Если в системе действует настройка swappiness=60 (или выше), то ядро часами будет выгружать неиспользуемую память. Например, это может касаться страниц виртуальной памяти OpenOffice или Gimp. Если на следующий день вы захотите продолжить работу с OpenOffice, потребуется пара секунд, чтобы все эти страницы вернулись из раздела подкачки обратно в оперативную память. Если установить значение swappiness=0, то ждать в таком случае не придется. |