- Подкачка (свопинг) в Linux
- Необходимость использования подкачки
- Выбор и настройка параметров подкачки
- Размещение областей подкачки: дисковый раздел или файл?
- Увеличение размера раздела подкачки (SWAP)
- Управление и мониторинг областью подкачки в Linux
- Какой объем swap space необходим?
- Когда необходима область подкачки?
- Создание файла подкачки.
Подкачка (свопинг) в Linux
SWAP – один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти перемещаются из ОЗУ в так называемые области подкачки (swap area или swap space), расположенные на вторичном хранилище данных (отдельный дисковый раздел или просто файл в файловой системе), освобождая ОЗУ для загрузки других активных фрагментов памяти.
Более подробно о механизмах подкачки можно прочитать в Википедии или в Wikipedia или в документации.
Необходимость использования подкачки
Наличие области подкачки является важной составляющей системы управления памятью, и необходимо для нормального функционирования системы .
п олучение резервного объема оперативной памяти не является основным назначением подкачки. Её основным назначением является обеспечение эффективного высвобождения и балансировка использования имеющейся памяти.
Фактически, использование области подкачки в качестве «дополнительного резервного объёма» является ненормальной ситуацией, и требует принятия мер по расширению аппаратных средств.
В Linux-системах существуют различные типы страниц оперативной памяти, каждый из которых имеет свои особенности, но для понимания нужности подкачки существенны два типа:
- Страницы, содержимое которых можно восстановить, повторно прочитав это содержимое из файлов (страницы с командами исполняемых процессов, кеши их файловых данных), т.н. файловый кеш;
- Страницы данных о распределении памяти между процессами, т.н. анонимные страницы, не имеющие исходных файлов.
И основное назначение области подкачки — это освобождать в оперативной памяти место для файлового кеша за счет выгрузки неактуальных анонимных страниц.Таким образом, удаление области подкачки не предотвратит увеличение общего количества дисковых операций при заполнении оперативной памяти, а просто заменит дисковые операции вытеснения анонимных страниц на повторные дисковые операции файлового чтения. Это не только менее эффективно, так как выбор страниц для обновления оказывается меньше, но, в свою очередь, также ведёт к ещё большему переполнению памяти.
Дополнительно область подкачки обычно используется для организации режимов сна (hibernation или suspend to disk). При входе в такие режимы в область подкачки сохраняется полная копия оперативной памяти. (В современных системах можно обеспечить режим сна без использования дискового раздела подкачки, с сохранением содержимого оперативной памяти в файлах).
Выбор и настройка параметров подкачки
Размещение областей подкачки: дисковый раздел или файл?
Современные Linux-системы позволяют размещать области подкачки как в специально выделенных дисковых разделах, так и в файлах. Независимо от способа размещения, современные версии ядра Linux обеспечивают примерно одинаковую скорость работы подкачки, определяя файлы подкачки, и используя прямой доступ к ним. При работе с дисковыми накопителями существенным фактором, негативно влияющим на скорость подкачки при работе с файлами может стать фрагментация этих файлов, поэтому для дисковых накопителей предпочтительным может быть использование дисковых разделов. При использовании твердотельных накопителей фрагментация файлов безразлична. В любом случае, возможность динамически отключать/подключать файловые области подкачки позволяет рационально использовать дисковое пространство, изменяя размеры области подкачки по необходимости без прерывания работы системы.
При установке Astra Linux по умолчанию автоматически создаётся область подкачки в отдельном дисковом разделе.
Проверить, где размещена (размещены) область (области) подкачки можно командой
Увеличение размера раздела подкачки (SWAP)
В случае когда разметка диска при установке была выполнена автоматически, объём размера раздела подкачки (SWAP) устанавливается равным объёму оперативной памяти. Но для улучшения работы АРМ с малым объёмом оперативной памяти, можно увеличить SWAP. Ниже представлено примерное правило для выбора объёма SWAP.
- до 2 ГБ — SWAP = 2 объёма оперативной памяти;
- более 2 ГБ до 4 ГБ — SWAP = 1.5 объёма оперативной памяти;
- более 4 ГБ до 6 ГБ — SWAP = объём оперативной памяти;
- более 6 ГБ до 8 ГБ — SWAP = 0,5 объёма оперативной памяти;
- более 8 ГБ — SWAP = 0.25 объёма оперативной памяти и менее при увеличении объёма оперативной памяти.
При этом, если вы хотите использовать гибернацию, следует оценить загрузку оперативной памяти в процессе работы и задать величину SWAP, исходя из этого. К примеру, если объем оперативной памяти составляет 16 ГБ, а рабочая загрузка не превышает в среднем 5-6 ГБ, величины SWAP-раздела в 8 ГБ вам хватит для гибернации. При таком подходе следует помнить, что при использовании ресурсоёмких программ (рендеринг изображения, компиляция огромных проектов и т.п.) оперативная память может заполняться полностью, а SWAP — использоваться в качестве подкачки. В таких ситуациях размер SWAP нужно выбирать индивидуально.
Чтобы посмотреть объём SWAP, необходимо нажать «Пуск» -> «Системные» -> «Информация о системе» и перейти в закладку «Память».
Внимание. Если жёсткий диск полностью заполнен, от которого будет браться объём для SWAP, это может привести к потере информации.
Для того чтобы увеличить объём SWAP, необходимо загрузить АРМ с установочного диска Astra Linux SE и при загрузке выбрать «Режим восстановления».
Согласиться с лицензией, выбрав «Да».
Появиться, а может и не появиться, предупреждение о необходимости определения дисков. Нажимаем «Enter».
Выбираем разметку дисков «Вручную».
Выбираем раздел перед SWAP.
Выбираем «Изменить размер раздела. «.
Соглашаемся с предупреждением, выбрав «Да».
Уменьшаем его на необходимый, в этом случаи на 2 ГБ и выбираем «Продолжить».
Начнётся процесс изменения размера раздела.
Повторно заходим в данный раздел.
Выбираем «Использовать как. «.
И выбираем «Журналируемая файловая система Ext4».
Выбираем «Точка монтирования:».
Выбираем «Настройка раздела закончена».
Используем необходимый объём и выбираем «Продолжить».
Выбираем «Использовать как:».
Затем «Настройка раздела закончена».
Заканчиваем разметку и записываем изменения на диск.
Соглашаемся с изменениями.
В окне дополнительных настроек ОС нажимаем клавишу «Esc».
Появиться окно предупреждения, выбираем «Продолжить».
Выбираем «Отмена установки».
Извлекаем установочный диск из дисковода и выбираем в окне предупреждения «Да».
АРМ перезагрузиться. После чего можно зайти в «Информация о системе» и посмотреть новый объём SWAP.
Для того чтобы уменьшить объём SWAP необходимо провести туже самую процедуру, только сначала необходимо удалить раздел SWAP, потом увеличить объём другого раздела или оставить его без изменения, и создать новый раздел SWAP.
Управление и мониторинг областью подкачки в Linux
Область подкачки играет важную роль в производительности системы. Давайте узнаем, как определить размер области подкачки в вашей системе и как она используется.
Большинство из нас не часто задумываемся об области подкачки, если только мы не сталкиваемся с проблемой нехватки памяти в наших системах. Даже в этом случае изучение и оценка области подкачки в системе не является сложным, и знание того, что нормально для вашей системы, может помочь вам определить, когда что-то работает не так. Итак, давайте изучим некоторые команды, которые помогут вам заглянуть в область подкачки. Но сначала давайте рассмотрим некоторые базовые основы.
Что такое область подкачки и как она используется.
Область подкачки (swap space) – это дисковое пространство, которое действует как расширение памяти. Он используется, когда физическая память (ОЗУ) системы заполнена и системе требуется больше ресурсов памяти. Это называется «swap», потому что система перемещает некоторые неактивные страницы в памяти в область подкачки, чтобы можно было разместить больше данных в ОЗУ. Другими словами, это позволяет освободить оперативную память в загруженной системе.
Программы и данные используют оперативную память, потому что это единственный способ их обработки системой. Фактически, когда система загружается, она перемещает такие программы, как ядро и systemd , в оперативную память, чтобы начать работу.
Область подкачки может быть настроена как отдельный раздел диска или как файл. В наши дни большинство установок Linux создают раздел во время установки, и это является опцией. Однако вы можете создать файл подкачки и использовать его для подкачки.
Из-за нехватки области подкачки вы можете столкнуться с проблемой, называемой «перегрузкой», при которой программы и данные перемещаются между ОЗУ и областью подкачки так часто, что система работает очень медленно.
Вместе RAM и swap называются «виртуальной памятью».
Какой объем swap space необходим?
Раньше для области подкачки рекомендовали выбирать объем равный двойному размеру оперативной памяти, но это было в те времена, когда в системах не было столько оперативной памяти, как сегодня. Эти рекомендации для Ubuntu, но вероятно, должны работать и для других дистрибутивов:
Важно различать подкачку и подкачку с гибернацией. Система, которая переходит в спящий режим, немедленно сохраняет состояние вашей системы на жестком диске и выключается. Когда вы разбудите его (например, подняв «крышку» ноутбука), все запущенные вами программы вернутся в то состояние, в котором они находились, когда система перешла в спящий режим. Поэтому рекомендуется увеличить область подкачки. Но не все системы переходят в спящий режим.
Чтобы узнать, может ли ваша система перейти в спящий режим, выполните команду:
$ which pm-hibernate /usr/sbin/pm-hibernate
Если на экран выведен ответ, показанный выше, значит ваша система готова к переходу в спящий режим. Вы можете проверить это, выполнив эту команду:
Как можно просмотреть объем области подкачки в вашей системе Linux?
Используйте команду swapon —show , чтобы просмотреть область подкачки в вашей системе.
Еще одна полезная команда — это команда free , которая отображает как размер области подкачки, так и использование памяти. При использовании параметра -m результаты отображаются в МБ, а не в КБ.
Команда sar сообщает об использовании области подкачки
Обратите внимание, что в приведенных выше выходных данных команды free область подкачки используется скромно, хотя доступно много свободной памяти.
Вы также можете просмотреть раздел подкачки с помощью такой команды:
Когда необходима область подкачки?
Если в вашей системе много памяти, возможно, вам никогда не понадобится использовать область подкачки. Но почти всегда полезно иметь ее под рукой. Дисковое пространство относительно дешево по сравнению с памятью, и вы никогда не знаете, когда какой процесс увеличит нагрузку. С другой стороны, если ваша область подкачки интенсивно используется почти все время, вам, возможно, следует подумать о добавлении дополнительной оперативной памяти в систему, поскольку с ее использованием связаны некоторые затраты на производительность.
Создание файла подкачки.
Если вам нужно создать файл подкачки в системе Linux, используйте команду:
После создания файла измените права доступа к нему, запустите команду mkswap и используйте команду swapon -a , чтобы сделать его доступным, и команду swapon —show , чтобы убедиться, что он запущен.
Можно включать и выключать использование файла подкачки с помощью команд swapoff и swapon , хотя вы, возможно, захотите отключить подкачку, только если вы добавили раздел подкачки и хотите использовать его вместо файла подкачки.