https://www.linux.com/news/all-about-linux-swap-space - оригинал
Свопинг - это процесс выгрузки страниц из памяти в заранее сконфигурированное место на жёстком диске. Виртуальная память - это суммарный объём физической памяти и свопа.
Своп нужен по 2-м причинам:
1. Система может потребовать больше памяти, чем есть в наличии. Тогда ядро выгружает менее часто запрашиваемые страницы на диск, освобождая место для процессов, которые требуют память в данный момент.
2. Приложение может потреблять много памяти во время запуска, используя её для инициализации своих процессов, а потом эта память больше не используется. Такие страницы можно скопировать на диск и освободить память для текущих нужд.
Недостатки свопинга: быстродействие диска измеряется в миллисекундах, а памяти - в наносекундах, так что доступ к диску в тысячи таз медленней.
В Линуксе бывает 2 вида пространства для свопинга: раздел и файл.
Команда swapon -s покажет тип свопа, используется ли он (сколько килобайт) и приоритет - какой своп использовать в первую очередь. В Линуксе, если у вас смонтировано 2 или более свопа с одним приоритетом, система будет использовать их по очереди, что заметно увеличит производительность. От себя добавлю: если не хотите ебаться с килобайтами -
free -h - там будут меби- и гибибайты.
free -h --si степени десятки, т.е. мегабайты и гигабайты.
I CВОП-РАЗДЕЛ
Проверка, имеет ли ваш раздел для свопа тип Linux Swap:
fdisk -l от рута.
В поле Type для своп-раздела должно быть Linux Swap, ID - 82.
Если надо изменить тип раздела, можно использовать fdisk с параметром t, но проще будет cfdisk с псевдографическим интерфейсом.
После того, как разделу присвоен тип своп, его надо подготовить: это типа как на нормальном разделе создать файловую систему.
mkswap /dev/sdx
x - номер раздела.
Теперь раздел готов к использованию, но его надо активировать:
swapon /dev/sdx
swapon -s - проверка, что он подключен и работает.
Чтобы раздел монтировался автоматически при загрузке, надо его занести в fstab, добавив туда строку:
/dev/sdx swap swap defaults 0 0
Параметры файловых систем, как правило, неприменимы к ФС типа своп. Точки монтирования нет.
Чтобы проверить, будет ли оно монтироваться автоматически, не перезагружаясь, надо отключить и снова подключить своп-раздел:
1. swapoff -a - отключает все свопы, присутствующие в fstab
2. swapon -as - подключить всё, что есть в fstab, и вывести резюме.
II СВОП-ФАЙЛ
Преимущества своп-файла: не нужен отдельный раздел на диске. Т.е., если понадобится дополнительное место для свопа, не надо переразмечать диск.
Проверка, есть ли в системе вообще своп:
swapon -as
Создание файла для свопа:
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
swapfile - имя файла.
Подготовка файла:
mkswap /swapfile
chmod 0600 /swapfile - присвоение прав доступа к файлу.
Подмонтирование:
swapon /swapfile
Строка в fstab аналогична таковой для раздела.
III РАЗМЕР СВОП-ПРОСТРАНСТВА.
Старые Юниксы типа Sun OS требовали размер свопа в 2-3 раза больше размера физической памяти. Современные реализации типа линуксов не требуют таких конских цифр, но если сконфигурировать таким образом, то они будут его использовать.
Правило "большого пальца" примерно такое:
1. Для десктопных систем своп делается примерно в 2 раза больше объема ОЗУ, чтобы можно было выкидывать туда простаивающие процессы.
2. Сервер - примерно равно объему ОЗУ.
3. Старые машины (где, например, 128 метров ОП): чем больше, тем лучше, хоть гигабайтами.
ПОЧЕМУ ИСПОЛЬЗУЕТСЯ СВОП при том, что ОЗУ заполнено наполовину:
В линуксах за это отвечает параметр ядра swappiness. Это число от 1 до 100, по умолчанию 60. Обозначает агрессивность свопинга: чем оно больше, тем больше страниц свопится из памяти. Вот например, разработчик ядра Эндрю Мортон выставляет 100, ибо нехуй всяким раздутым приложениям засирать мою оперативную память. Недостаток такого подхода в том, что если слишком часто выгружать страницы, это снижает время отклика приложений. Потому что когда вам понадобится ткнуть в это приложение, оно будет дооолго загружаться с диска. Я вам скажу, что даже при значении 60 случается такая хуета, что файловый менеджер может открываться 3-4 секунды.
Как изменить значение параметра:
echo X > /proc/sys/vm/swappiness - под рутом.
Или
sysctl -w vm.swappiness=X.
1<=X<=100. Если надо делать это автоматически при загрузке (так сработает до перезагрузки) - добавить в /etc/sysctl.conf или какой-нибудь /etc/sysctl.d/90-swap.conf строчку:
vm.swappiness=X.
Заключение:
Управление свопом - важный момент в системном администрировании. Не бойтесь экспериментировать, но не забывайте мониторить систему на предмет того, даёт ли ваша конфигурация желаемый результат.
Свопинг - это процесс выгрузки страниц из памяти в заранее сконфигурированное место на жёстком диске. Виртуальная память - это суммарный объём физической памяти и свопа.
Своп нужен по 2-м причинам:
1. Система может потребовать больше памяти, чем есть в наличии. Тогда ядро выгружает менее часто запрашиваемые страницы на диск, освобождая место для процессов, которые требуют память в данный момент.
2. Приложение может потреблять много памяти во время запуска, используя её для инициализации своих процессов, а потом эта память больше не используется. Такие страницы можно скопировать на диск и освободить память для текущих нужд.
Недостатки свопинга: быстродействие диска измеряется в миллисекундах, а памяти - в наносекундах, так что доступ к диску в тысячи таз медленней.
В Линуксе бывает 2 вида пространства для свопинга: раздел и файл.
Команда swapon -s покажет тип свопа, используется ли он (сколько килобайт) и приоритет - какой своп использовать в первую очередь. В Линуксе, если у вас смонтировано 2 или более свопа с одним приоритетом, система будет использовать их по очереди, что заметно увеличит производительность. От себя добавлю: если не хотите ебаться с килобайтами -
free -h - там будут меби- и гибибайты.
free -h --si степени десятки, т.е. мегабайты и гигабайты.
I CВОП-РАЗДЕЛ
Проверка, имеет ли ваш раздел для свопа тип Linux Swap:
fdisk -l от рута.
В поле Type для своп-раздела должно быть Linux Swap, ID - 82.
Если надо изменить тип раздела, можно использовать fdisk с параметром t, но проще будет cfdisk с псевдографическим интерфейсом.
После того, как разделу присвоен тип своп, его надо подготовить: это типа как на нормальном разделе создать файловую систему.
mkswap /dev/sdx
x - номер раздела.
Теперь раздел готов к использованию, но его надо активировать:
swapon /dev/sdx
swapon -s - проверка, что он подключен и работает.
Чтобы раздел монтировался автоматически при загрузке, надо его занести в fstab, добавив туда строку:
/dev/sdx swap swap defaults 0 0
Параметры файловых систем, как правило, неприменимы к ФС типа своп. Точки монтирования нет.
Чтобы проверить, будет ли оно монтироваться автоматически, не перезагружаясь, надо отключить и снова подключить своп-раздел:
1. swapoff -a - отключает все свопы, присутствующие в fstab
2. swapon -as - подключить всё, что есть в fstab, и вывести резюме.
II СВОП-ФАЙЛ
Преимущества своп-файла: не нужен отдельный раздел на диске. Т.е., если понадобится дополнительное место для свопа, не надо переразмечать диск.
Проверка, есть ли в системе вообще своп:
swapon -as
Создание файла для свопа:
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
swapfile - имя файла.
Подготовка файла:
mkswap /swapfile
chmod 0600 /swapfile - присвоение прав доступа к файлу.
Подмонтирование:
swapon /swapfile
Строка в fstab аналогична таковой для раздела.
III РАЗМЕР СВОП-ПРОСТРАНСТВА.
Старые Юниксы типа Sun OS требовали размер свопа в 2-3 раза больше размера физической памяти. Современные реализации типа линуксов не требуют таких конских цифр, но если сконфигурировать таким образом, то они будут его использовать.
Правило "большого пальца" примерно такое:
1. Для десктопных систем своп делается примерно в 2 раза больше объема ОЗУ, чтобы можно было выкидывать туда простаивающие процессы.
2. Сервер - примерно равно объему ОЗУ.
3. Старые машины (где, например, 128 метров ОП): чем больше, тем лучше, хоть гигабайтами.
ПОЧЕМУ ИСПОЛЬЗУЕТСЯ СВОП при том, что ОЗУ заполнено наполовину:
В линуксах за это отвечает параметр ядра swappiness. Это число от 1 до 100, по умолчанию 60. Обозначает агрессивность свопинга: чем оно больше, тем больше страниц свопится из памяти. Вот например, разработчик ядра Эндрю Мортон выставляет 100, ибо нехуй всяким раздутым приложениям засирать мою оперативную память. Недостаток такого подхода в том, что если слишком часто выгружать страницы, это снижает время отклика приложений. Потому что когда вам понадобится ткнуть в это приложение, оно будет дооолго загружаться с диска. Я вам скажу, что даже при значении 60 случается такая хуета, что файловый менеджер может открываться 3-4 секунды.
Как изменить значение параметра:
echo X > /proc/sys/vm/swappiness - под рутом.
Или
sysctl -w vm.swappiness=X.
1<=X<=100. Если надо делать это автоматически при загрузке (так сработает до перезагрузки) - добавить в /etc/sysctl.conf или какой-нибудь /etc/sysctl.d/90-swap.conf строчку:
vm.swappiness=X.
Заключение:
Управление свопом - важный момент в системном администрировании. Не бойтесь экспериментировать, но не забывайте мониторить систему на предмет того, даёт ли ваша конфигурация желаемый результат.
No comments:
Post a Comment