Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

Файл подкачки и разделы в Linux

21 февр. 2014

Если оперативной памяти недостаточно для выполнения всех программ и в вашем распоряжении есть файлы и разделы подкачки, Linux задействует их в качестве дополнительной памяти (страничная организация памяти). Таким образом, Linux может использовать больше памяти, чем доступно в RAM.

Обычно раздел подкачки создается при установке. Чтобы проверить, есть ли в вашем распоряжении виртуальная память и если есть, то сколько (имеется или действительно применяется), выполните команду free. В следующем примере имеем 1519 Мбайт RAM и 2000 Мбайт виртуальной памяти. В настоящее время, согласно примеру, используется 401 Мбайт RAM для работы с программами и данными, остаток используется как файловый буфер (кэш). Виртуальная память пока не используется.

Если компьютер работает длительное время, ему рано или поздно придется использовать виртуальную память, даже если у вас в распоряжении еще достаточно RAM. Причина проста: ядро управляет кэшем для предоставления доступа к файлам «для чтения»; если позже понадобится какой-либо файл, его можно считать из кэша. Как только кэш превышает по размеру свободную оперативную память, Linux выгружает блоки памяти, которые давно не использовались, в раздел подкачки. Это совсем не означает, что осталось мало памяти. Linux просто пытается использовать имеющуюся память как можно более эффективно.

Файл /etc/fstab



Далее показаны две записи о разделах подкачки; эти записи находятся в файле / etc/fstab. Благодаря параметру pri оба раздела Linux используются равномерно. Это повышает скорость системы, если разделы находятся на двух взаимно независимых жестких дисках. Если имеется только один раздел подкачки, укажите defaults вместо рп'=0.

# /etc/fstab: разделы подкачки /dev/sda9 swap swap pri=1 О О /dev/sdc7 swap swap рп'=1 О О

Управление работой виртуальной памяти



Если памяти в RAM начинает не хватать, ядро Linux использует достаточно сложный алгоритм, позволяющий решить, следует ли открыть доступ к кэш-памяти для решения новых задач либо лучше выгрузить в раздел подкачки последние неиспользованные области памяти. Параметр ядра /proc/sys/vm/swappiness позволяет вам указать, что должно делать ядро в случае выбора — уменьшить кэш или выгрузить данные.

Стандартная настройка для swappiness равна 60, диапазон возможных значений: от 0 до 100. Значение 0 означает, что ядро по возможности не будет использовать постраничную организацию памяти; 100 говорит о том, что области памяти, не используемые долгое время, будут отправляться в раздел подкачки как можно раньше.

На практике вы заметите работу разделов подкачки только тогда, когда оставите компьютер работать на всю ночь и за это время программа обратится к большому количеству файлов на диске (это может быть, например, сценарий для резервного копирования или программа для составления поискового индекса). Поскольку обращений к файлам много, кэш значительно увеличивается. Если в системе действует настройка swappiness=60 (или выше), то ядро часами будет выгружать неиспользуемую память. Например, это может касаться страниц виртуальной памяти OpenOffice или Gimp. Если на следующий день вы захотите продолжить работу с OpenOffice, потребуется пара секунд, чтобы все эти страницы вернулись из раздела подкачки обратно в оперативную память. Если установить значение swappiness=0, то ждать в таком случае не придется.

Сколько нужно виртуальной памяти



Раньше часто можно было встретить рекомендацию оставлять на виртуальную память примерно в два раза больше места, чем есть в оперативной. Однако с ростом объемов памяти это практическое правило все реже срабатывает. Если вы работаете с Linux в основном на локальном компьютере, вам вполне хватит и относительно небольшого раздела подкачки (например, раздел подкачки размером 512 Мбайт при оперативной памяти около 2 Гбайт).

Особый случай представляют собой ноутбуки, которые вы, возможно, захотите перевести в спящий режим (однако у меня это получалось плохо). В таком случае вся оперативная память сохраняется в разделе подкачки и ноутбук переходит в спящий режим. Для этого, разумеется, необходимо, чтобы раздел подкачки был больше, чем вся оперативная память (например, в полтора раза).

Специфические требования предъявляются и к крупным серверным системам. Например, Oracle для работы со своим сервером базы данных (версия 10.2) при расчете размеров раздела подкачки рекомендует использовать различные коэффициенты — в зависимости от доступного объема RAM: О до2 Гбайт — коэффициент 2; О 2-8 Гбайт — коэффициент 1; О более 8 Гбайт — коэффициент 0,75.

В 32-битных системах максимальный размер раздела подкачки составляет 2 Гбайта. Если вам требуется больше виртуальной памяти, можно использовать и несколько разделов подкачки. В таком случае гораздо целесообразнее перейти к работе с 64-битным дистрибутивом.

Время от времени возникает вопрос: можно ли (а, возможно, и следует ли) отказаться от раздела подкачки, если на компьютере установлена очень большая оперативная память. В принципе Linux может работать и без виртуальной памяти, но есть и важный аргумент в пользу создания раздела подкачки: если какая-то программа выйдет из-под контроля или по каким-то причинам потребует больше памяти, чем ожидалось, доступная память когда-нибудь будет израсходована. Это может привести к аварийному завершению следующего процесса, на который потребуется дополнительная память. Это может быть любой процесс — необязательно программа, вышедшая из-под контроля.

Строго говоря, раздел подкачки не решает этой проблемы, ведь и виртуальная память когда-нибудь закончится. Но из-за нарастающей загруженности виртуальной памяти программы в таком случае будут работать все медленнее и медленнее и вы заблаговременно поймете, что с компьютером что-то неладно. Прежде чем система откажет, вы успеете завершить программу, вызвавшую ошибку, командой kill.

Создание нового раздела подкачки



Если вы создали слишком маленький раздел подкачки или вам по каким-либо причинам понадобится еще один, создайте новый раздел (например, командой fdisk). В качестве типа диска укажите Linux swap (82 в fdisk). Отформатировав раздел с помощью команды mkswap, вы можете активизировать его командой swapon. Если все получится, дополните файл etc/fstab.

Чтобы не замедлять работу системы, старайтесь создавать на жестком диске только один раздел подкачки. В идеальном случае такой раздел должен находиться на малоиспользуемом или неиспользуемом диске.

Файлы подкачки


Для того чтобы не использовать раздел подкачки, вы можете выгружать память в отдельный файл подкачки. Конечно, это решение на крайний случай, так как из-за такой операции замедляется доступ к файловой системе. Единственное достоинство файла подкачки заключается в том, что для него не требуется отдельный раздел.

Обычно файлы подкачки сохраняются в разделе /dev. В первую очередь создаем командой dd пустой файл заданного размера. При этом в качестве источника данных используется /dev/zero. Из этого устройства можно считать сколько угодно нулевых байт. Размер нужно указывать в блоках, причем каждый блок равен 1024 байт. Кроме того, файл подкачки, подобно разделу подкачки, форматируется командой mkswap и активизируется с помощью swapon. В следующем примере мы создадим маленький файл подкачки размером около 1 Мбайт:

<code>root# dd bs=1024 if=/dev/zero of=/swapfile count=1000

1000+0 records in

1000+0 records out

root# mkswap /swapfile 1000

Setting up swapspace, size = 1019904 bytes root# sync

root# swapon -v /swapfile

swapon on device /swapfile

Файлы подкачки можно указать в fstab, как и разделы подкачки:

# Дополнение в /etc/fstab /swapfile none swap sw 0 0</code>

Читайте так же:
RAID — избыточный массив независимых жестких дисков






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать