И что же такое Swap в Linux?
Если сервер пытается запустить программу, которая требует больше оперативной памяти, чем доступно, операционка для решения задачи используют технологию swapping ("подкачка"). Суть этой технологии заключается в том, что объем данных, который не помещается в оперативную память временно хранится на жестком диске, в то время как другая часть данных обрабатывается. Рассмотрим два варианта управления своп-разделами в Linux для повышения производительности системы.
В ОС Linux оперативная память (ОЗУ, RAM, random access memory) делится на разделы, называемые страницами (pages). Swapping ("подкачка", своппинг) -
это процесс во время которого страницы памяти копируются в сконфигурированный специально раздел диска, который называется swap space
(раздел подкачки, может быть как и файлом, так и разделом жесткого диска) для того чтобы освободить ОЗУ.
Совокупные размеры физической памяти и раздела подкачки - это объем имеющийся виртуальной памяти.
Своппинг крайне необходим потому что когда системе необходимо больше памяти (приложение или процесс запрашивает у системы больше памяти) чем сейчас свободно в ОЗУ,
ядро разгружает ("откачивает") наименее используемые страницы и освобожденную память выделяет текущему приложению или процессу. А также,
значительное количество страниц используемых программами на стадии запуска, используются только при инициализации и никогда более.
Поэтому система свапит эти страницы и освобождает ОЗУ.
У своппинга конецчно есть и недостатки. Ведь по сравнению с ОЗУ работа с жестким диском осуществляется на порядоки медленнее.
На чтение/запись в ОЗУ используются наносекунды, а на жесткий диск уже используются миллисекунды, поэтому одни и те же операции на жестком диске занимают в десятки тысяч больше времени чем в ОЗУ.
Поэтому чем больше страниц спаппится, тем медленнее будет работать ваша система.
Однако для выделенного сервера в некоторых ситуациях своппинг помогает не повесить сервер. Т.е. благодаря подкачки вы будете иметь хоть какое-то (пусть очень замедленное) но все-таки управление сервером.
В Linux есть два вида своппа: раздел подкачки и файл подкачки. Раздел подкачки - это отдельный раздел на жестком диске, используемый только для своппинга, никакие другие файлы не могут там располагаться. В Linux работа с этим разделом происходит на низком уровне. Файл подкачки - это специальный файл в файловой системе.
Swap partition, своп-раздел
Для того что бы в Linux посмотреть какие своп пространства у вас имеются, используйте команду:
swapon -s.
Filename Type Size Used Priority
/dev/sda7 partition 859436 0 -1
Каждая строчка в этом списке описывает имеющиеся у вас своп пространства. В поле "Type" указывается тип пространства: partition (раздел) или file (файл). Поле "Filename" показывает местоположение свопа. Далее идет общий размер свопа и сколько сейчас используется. В последнем поле указан приоритет, т.е. какие пространства системе использовать вначале. Стоит отметить, что если примонтировать несколько своп-простанств расположенных на разных жестких дисках, и выставить им одинаковый приоритет, то Linux будет равномерно распределять страницы памяти по ним, что приведет к существенному увеличению производительности системы.
Перед тем как добавить новый своп-раздел, необходимо приготовить для него место. Для начала убедитесь в том, что раздел помечен как swap. Для этого используйте следующую команду:
fdisk -l /dev/hdb
Замените /dev/hdb на на путь к устройству где будет расположен своп. Результат должен выглядеть примерно так:
Device Boot Start End Blocks Id System
/dev/hdb1 2328 2434 859446 82 Linux swap / Solaris
Если раздел не помечен как swap, то используйте программу fdisk с ключом t, будьте осторожны во время этой процедуры, а то останетесь без своего линукса и других ОС, проверьте раздел на наличие нужной информации перед тем, как сделать из него swap.
Как только раздел помечен как своп, необходимо подготовить, для этого используется следующая команда:
mkswap /dev/hdb1
Если никаких ошибок нет, то можно подключать своп-раздел:
swapon /dev/hdb1
Проверить результат можно вышеупомянутой командой:
swapon -s.
Для того что бы новый своп автоматически монтировался при старте системы, необходимо внести некоторые изменения в файл /etc/fstab, в котором содержатся все файловые системы и свопы, монтирующиеся при старте. Формат файла следующий:
Таким образом, swap-space - это специальный тип файловой системы. Для добавления нового свопа добавьте следующую строку:
/dev/hdb1 none swap sw 0 0
Для того что бы проверить примонтируется ли новый своп-раздел при старте, отключите все свопы командой swapoff -a. Затем командой swapon -a, включите свопы, загрузятся те, которые перечислены в файле /etc/fstab. Ну и наконец командой swapon -s проверьте, какие сповы примонтировались.
Создание SWAP файла
Создаем файл необходимого размера для swap области, где /home/swap-tmp - это имя и путь файла, а count=1024K его размерв, в данном случае - 1024 Мб):
# sudo dd if=/dev/zero of=/home/swap-tmp bs=1024 count=1024K
На экране получим:
Далее производим запись в начало файла системную информацию, которая будет используется ядром системы для работы с файлом подкачки:
# sudo mkswap /home/swap-tmp
Следующим шагом активируем только что созданный SWAP файл:
# sudo swapon /home/swap-tmp
Для просмотра результата просматриваем все объекты, которые используются для размещения виртуальной памяти:
# cat /proc/swaps
После перезагрузки системы SWAP файл необходимо активировать снова или добавить строчка для автоматической загрузки в файл fstab.
Редактировать файл fstab можно самостоятельно или командой, которая добавляет в конец файла
fstab строку /home/swap-tmp swap swap defaults 0 0:
# echo "/home/swap-tmp swap swap defaults 0 0" | sudo tee -a /etc/fstab
Тоже самое действие но добавление через UUID:
# echo "UUID=54c60583-e61a-483a-a15c-2f1be966db85 swap swap defaults 0 0" | sudo tee -a /etc/fstab
Удаление SWAP файла
Просматриваем все объекты, которые используются для размещения виртуальной памяти
# cat /proc/swaps
Выбираем ненужный.
Деактивируем, для примера, созданный выше SWAP файл:
# sudo swapoff /home/swap-tmp
Удаляем SWAP файл:
# sudo rm /home/swap-tmp
Если Вы раньше добавляли строчку в fstab, для автоматической загрузки SWAP файла при старте операционной системы, то следует ее удалить. Выводим файл /etc/fstab для редактирования на экран:
# sudo gedit /etc/fstab
В нем удаляем строчку монтирования SWAP файла.
Народная ссылка для регистрации:
SWAP в Linux: Создание, редактирование и удаление раздела или файлаКатегории:
Поделитесь этой записью или добавьте в закладки
Другие материалы и статьи
» Буржуйская биржа ссылок Spiders Market: Сегодня хочу представить Вашему вниманию динамично развивающийся проект - зарубежную биржу ссылок ...
» Cистема покупки-продажи контента "Text Sale": Практически это супермаркет уникального контента или просто биржа копирайтинга. Хороший заработок для к...
» Что такое хостинг: Любые сайты или ресурсы в интернете содержат на себе файлы. Которые пользователи могут посмотреть или с...
» Рекламная контекстная сеть "Контекст": Сегодня речь пойдет о новой рекламной сети "Контекст", позволяющей разместить рекламные блоки аналогичн...
Комментировать