Добавляем файл подкачки (SWAP) на Ubuntu
Открываем наш терминал или подключаемся к машине по ssh и убеждаемся в отсутствии SWAP:
sudo swapon --show или free -h
Убеждаемся в наличии свободного места на диске:
df -h
Создаем файл подкачки утилиту fallocate, где 1 это размер файла в гигобайтах:
sudo fallocate -l 1G /swapfile
Проверим действительно ли зарегистрирован файл:
ls -lh /swapfile
Позаботимся о безопасности файла:
chown root:root /swapfile chmod 0600 /swapfile ls -lh /swapfile
Такой нехитрый ход позволяет читать и записывать только пользователю root. Затем создаем swap пространство командой:
sudo mkswap /swapfile
Включаем файл командной:
sudo swapon /swapfile
Теперь файл подкачки подключен и работает. Убедиться в этом можно командами указаными выше.
Команды для отключения и проверки состояния отключения (если вы решите отказаться от файла или изменить его размер):
swapoff /swapfile swapon -s
Как посмотреть swap в Linux
Прежде чем приступить к процессу добавления, настройки или удаление файла подкачки, необходимо проверить его наличие. Для этого проще всего использовать приведенную ниже команду. В нашем случае она выглядит так:
Используемая команда отображает размер файла подкачки вашей операционной системы. Однако, по ее результатам мы не можем определить – это файл подкачки или раздел подкачки. Поэтому будем использовать дополнительный другую команду, чтобы посмотреть swap linux. Вводим в терминал следующее:
Как видите, в нашем случае под swap выделено 1.4 Гб и это файл. То есть, он находится не на отдельном разделе, а на том же диске, на котором установлена операционная система.
Если это будет отдельный логический том, то под надписью «TYPE» мы увидим слово «partition».
Если бы файл подкачки в вашей операционной системе отсутствовал, результат работы команды free -h выглядел бы примерно так:
То есть, вместо каких-либо данных о файле подкачки вы увидите нули.
Ссылки
- Описание Swapspace
- Описание механизма подкачки страниц на Википедии
1)swapspace создает SWAP-файлы без шифрования внутри файла
Разместил DreamerKlim, 2017-12-09. Последнее изменение: 2018-01-28. / 2 комментария
Файл подкачки или SWAP (с англ. обмен) — это файл обеспечивающий механизм виртуализации памяти, при котором некорректный объем данных из оперативной памяти сохраняется на жестком диске (или SSD). В последующем будет происходить обмен данными между оперативной памятью и файлом подкачки.
Для чего нужен файл подкачки?
Если на вашем компьютере заканчивается оперативная память, то часть данных, содержащихся в ней, будет скинута в SWAP. Зачастую эти данные неактивны и их отсутствие в оперативной памяти не должно существенно влиять на производительность. Этот нехитрый механизм не дает оперативке полностью забиться и тем самым предупреждает тормоза, подвисание и даже прекращение работы различных программ.
Размер файла подкачки. Больше не всегда лучше
«Больше не всегда лучше» — это правило отлично описывает принцип выбора размера файла подкачки. В интернете можно найти много рекомендаций по выбору размера файла, но каково-то универсального ответа нет, все очень индивидуально и будет зависеть от:
- Размера оперативной памяти.
- Используемых приложений.
- Используется ли режим сна?
Для машин с маленькой оперативной памятью (до 2 гигабайт) рекомендовано создать SWAP примерно равный оперативке. Если на машине стоит от 2 гигабайта памяти, то файл подкачки разумно ставить 1/2 от оперативной памяти, но не превышая 4 гигабайт. Эти рекомендации подходят только для систем не использующих сон/гибернацию и не работающих с секретными данными. Если вы использует сон/гибернацию, то размер файла следует брать равный размеру оперативной памяти, если вы работает с секретными данными, то возможно, следует отказаться от такого файла. Советую следить иногда за нагрузкой на оперативную память и SWAP при полной забитости можно расширить файл подкачки или установить больше памяти.
Оптимизация файла подкачки на одном винчестере
Компания Microsoft по умолчанию сделала своп-файл динамическим, а, как мы выяснили, наилучшая производительность достигается при статическом файле.
Если у вас два и более жёстких дисков, то перенесите файл подкачки на любой, кроме системного.
Но что делать, если винчестер только один? Этот метод подходит именно для таких случаев.
Для начала нужно «разбить» жёсткий диск, создав на нём дополнительный раздел размером 2-3Гб.
Для этого можно воспользоваться специальными программами по типу PartitionMagic (PowerQuest Corporation), которые позволять разделить диск без потери данных.
Можно, конечно, использовать встроенную в Windows программу для деления диска на сегменты — Fdisk, но у неё много недостатков.
В том числе довольно сложный интерфейс, поэтому новичкам будет непросто.
Наш совет использовать быструю и сравнительно удобную PartitionMagic (PowerQuest Corporation).
Просто следуем указанному алгоритму. Скачиваем и устанавливаем программу.
Установка программы
Открываем её.
В правом верхнем углу щёлкаем левой кнопкой мыши и выбираем нужный диск (в данном случае, он только один).
Интерфейс программы (нерусифицированная версия)
Для англоязычной версии
В верхней строке выбираем
«Tasks» (в самом верху под названием) –> Create New Partition… –> кликнуть на диалоговое окно «Create New Partition» –> нажать Next –> выбрать After C: (Recommended) –>снова Next –> Partition Properties –> в параметре «Size» прописать размер создаваемого диска в Мб (как писалось выше: 2-3Гб, что равно 2048Мб и 3072Мб соответственно ) –> вкладка «Create as» –> Logical (Recommended) –> кликаем на «File system type» (выбрать нужно именно FAT32) –> нажимаем на вкладку «Drive Letter» –> выбираем букву для обозначения диска (любую латинскую большую букву, кроме С. Например E, D, K и другие) –> далее нажимаем Next –> затем Finish –> и наконец Apply.
Интерфейс программы (русифицированная версия)
Для русскоязычной версии
Выбираем из верхнего меню
«Задачи» –> «Создать новый раздел…» –> диалоговое окно Создание нового раздела –> кнопка Далее –> выбрать After C: (Recommended) –> Далее –> «Свойства раздела» –> в параметре «Раздел» прописать размер создаваемого диска в Мб (как писалось выше: 2-3Гб, что равно 2048Мб и 3072Мб соответственно )–> в окошке «Создать как» –> Logical (Recommended) –> при выборе типа файловой системы обязательно указываем именно FAT32 –> выбираем букву для обозначения диска (любую латинскую большую букву, кроме С. Например E, D, K и другие) –> Далее –> нажимаем на Финиш –> а затем Применить.
Разбиение жёсткого диска с помощью Partition Magic
Видео инструкция
Создавая новый раздел, важно обращать внимание на ряд важный параметров:
- размер создаваемого размера (от 2 до 3Гб),
- вид файловой системы (нужный нам FAT32),
- назначение созданного нами диска.
Он может быть основным, логическим, либо иметь статус загрузочного.
Наш новый раздел диска будет иметь следующие параметры: объём 2Гб(3Гб), тип файловой системы должен быть конвертирован в FAT32, назначение — логическое.
Если всё верно, то переходим к следующим действиям.
На очереди дефрагментация нашего нового раздела.
С её помощью мы объединяем фрагментированные на жёстком диске файлы. Она нужна для разгрузки жёсткого диска.
Фрагментация файлов заставляет его совершать много дополнительных действий, что существенно замедляют его работу.
Перейдём к дефрагментации:
Заходим в
«Мой компьютер» и левой кнопкой мыши выделяем нужный диск:
Выделение диска
Затем кликаем на правую кнопку и вызываем
«Свойства»:
Свойства диска
Нажимаем на выделенное поле и переходим к окну свойств. Ищем вкладку
«Сервис» и щёлкаем на неё.
Перед нами появляются опции, которые мы можем применить к жёсткому диску. Выбираем
«Выполнить дефрагментацию».
Дефрагментация диска
Откроется новое окно, в котором выбираем кнопку Дефрагментация и нажимаем на неё.
Последняя стадия дефрагментации
Осталось только дождаться окончания дефрагментации. Теперь всё готово к следующему этапу.
После создания нового диска и его фрагментации, выберите его, как место хранения файла подкачки.
Используйте всё его пространство для нужд свопа.
Как именно это сделать описано выше.
В списке дисков, появится только что созданный вами раздел на который и можно поместить скрытую виртуальную память.
После завершения ваш компьютер будет полностью оптимизирован.
Мы детально описали для вас процесс оптимизации ПК при помощи манипуляций со своп-файлом. Надеемся, вы нашли нужную для вас информацию!
Что такое Swap?
Swap (так же известна как пространство подкачки) — это область на жестком диске, которая используется для временного хранения данных из оперативной памяти, для которых там больше нет места. Это позволяет увеличить объем информации, которую система может хранить в рабочей памяти. Пространство подкачки используется только тогда, когда память уже полностью занята, и туда будут помещаться только данные, которые давно использовались.
Работа с информацией будет выполняться намного медленнее, чем в оперативной памяти, но операционная система будет продолжать работать и использовать swap только для старых данных. В целом, это может быть отличной защитой от переполнения оперативной памяти. Пространство подкачки можно настроить двумя способами, добавив раздел подкачки для Ubuntu на диске или создать файл подкачки.
Как переместить файл подкачки
Откройте компонент панели управления Система и щелкните ссылку Дополнительные параметры системы.
В разделе Быстродействие нажмите кнопку Параметры, перейдите на вкладку Дополнительно и в разделе Виртуальная память нажмите кнопку Изменить
Откроется окно, как показано на рисунке ниже.
Обратите внимание на значение рекомендуемого размера для файла подкачки.
Снимите флажок Автоматически выбирать объем файла подкачки, если установлен.
В списке Диск выберите раздел, на который вы планируете перенести файл подкачки, и установите переключатель Указать размер.
Введите в поле Исходный размер значение рекомендуемого размера, а в поле Максимальный размер — желаемое значение, которое не должен превышать размер файла подкачки. Нажмите кнопку Задать.Файл подкачки размещен на выбранном вами разделе
Теперь нужно определиться с тем, что делать с файлом подкачки на системном разделе.
В списке Диск выберите раздел, на который установлена Windows (как правило, ему назначается буква C). Дальше вы можете выбрать один из двух вариантов.
A) Если вы не хотите иметь на системном разделе файл подкачки, установите переключатель Без файла подкачки и нажмите кнопку Задать. Система предупредит вас о невозможности записи отладочных данных (дампов памяти) при отсутствии файла подкачки примерно таким сообщением, как показано на рисунке ниже.Обратите внимание, что в сообщении указывается минимальный размер файла подкачки, который необходим для создания дампов памяти. Нажмите кнопку Да.
Б) Если вы хотите иметь на системном разделе файл подкачки минимального размера и сохранить возможность диагностики в случае возникновения критических ошибок (BSOD), выполните действия из пункта А), чтобы определить минимальное значение для размера файла подкачки, позволяющее записывать отладочные данные. Затем установите переключатель Указать размер. Введите в поле Исходный размер значение равное или превышающее значение, указаннное в качестве минимального для записи дампов памяти. Введите в поле Максимальный размер такое же значение, как в поле Исходный размер, и нажмите кнопку Задать. Расположение файла подкачки на системном разделе сконфигурировано.
Примечание. Выполнив эти действия, вы сохраните возможность записи малых дампов памяти, которых может оказаться вполне достаточно для диагностики критических ошибок. Однако запись полных дампов памяти будет невозможна. В KB307886 рекомендуется указывать в качестве исходного размера как минимум объем оперативной памяти, установленной на компьютере. Эта рекомендация, вероятно, нацелена на сохранение возможности записи полных дампов памяти. Вы можете следовать ей, однако примите к сведению, что полные дампы памяти не записываются на компьютерах, имеющих 2 и более гигабайта оперативной памяти (за дополнительной информацией обратитесь к KB274598).
Нажмите кнопку ОК. Система предупредит вас о необходимости перезагрузки компьютера для вступления изменений в силу. Нажимайте ОК, пока не появится предложение перезагрузить компьютер.
Оптимизация SWAP
Оптимизация сводится к настройке двух параметров.
Параметр ядра swappiness
Параметры от 0 до 100. При значениях близких к нулю, ядро не переносит данные на диск, если в этом нет крайней необходимости.
Определение используемого параметра swappiness:
$ cat /proc/sys/vm/swappiness
30
1 |
$catprocsysvmswappiness 30 |
Исходя из действующего значения принимаете решение об изменении. Изменим значение до 10:
$ sudo sysctl -w vm.swappiness=10
vm.swappiness = 10
1 |
$sudo sysctl-wvm.swappiness=10 vm.swappiness=10 |
параметр -w для сохранения этой настройки после перезагрузки.
Параметр ядра vfs_cache_pressure
Показывает системе какое время нужно хранить открытые. Значение по умолчанию 100. При значениях близких к нулю, ядро будет держать их в памяти как можно дольше.
Определение используемого параметра vfs_cache_pressure:
$ cat /proc/sys/vm/vfs_cache_pressure
100
1 |
$catprocsysvmvfs_cache_pressure |
Исходя из действующего значения принимаете решение об изменении. Изменим значение до 1000:
$ sudo sysctl -w vm.vfs_cache_pressure=1000
vm.vfs_cache_pressure = 1000
1 |
$sudo sysctl-wvm.vfs_cache_pressure=1000 vm.vfs_cache_pressure=1000 |
Размещение областей подкачки: дисковый раздел или файл?
Современные Linux-системы позволяют размещать области подкачки как в специально выделенных дисковых разделах, так и в файлах. Независимо от способа размещения, современные версии ядра Linux обеспечивают примерно одинаковую скорость работы подкачки, определяя файлы подкачки, и используя прямой доступ к ним. При работе с дисковыми накопителями существенным фактором, негативно влияющим на скорость подкачки при работе с файлами может стать фрагментация этих файлов, поэтому для дисковых накопителей предпочтительным может быть использование дисковых разделов. При использовании твердотельных накопителей фрагментация файлов безразлична. В любом случае, возможность динамически отключать/подключать файловые области подкачки позволяет рационально использовать дисковое пространство, изменяя размеры области подкачки по необходимости без прерывания работы системы.
Дополнительные настройки
Можно контролировать интенсивность использования пространства подкачки в Ubuntu 20.04 с помощью параметра ядра swappiness:
По умолчанию установлено значение 60. Если это значение ближе к 100, система будет пытаться поместить в подкачку больше данных и сберечь память, при значениях близких к нулю, ядро не переносит данные на диск, если в этом нет крайней необходимости. Этот вариант может сделать систему быстрее, особенно актуально для домашних компьютеров.
Чтобы установить значение 10 необходимо выполнить команду:
А для сохранения этой настройки после перезагрузки:
Другой параметр, который влияет на количество используемой памяти -vfs_cache_pressure. Он указывает системе какое время нужно хранить открытые файлы в кэше оперативной памяти. Значение 100 заставляет систему удалять такие файлы очень быстро, 0 — держать их в памяти как можно дольше. Проверить текущее состояние можно при помощи команды:
Чтобы хранить файлы дольше, можно установить значение в 50 используя команду:
Варианты размещения SWAP
Вариантов несколько:
- на разделе диска,
- в файле,
- или в оперативной памяти использую zRAM.
Исторически в Linux SWAP размещался на разделе, но в современных дистрибутивах производительность SWAP-файла не уступает SWAP-разделу и это весьма радует.
SWAP-раздел
Когда вы точно знаете, что размер оперативной памяти меняться не будет и вы точно уверены в размере SWAP разумно выделить раздел при установке системы.
Хочу заострить ваше внимание на установку систем Linux из готовых шаблонов которые предлагают хозяева ресурсов предоставляющих услуги VDS. Один из шаблонов при использовании 2 G памяти создал мне SWAP раздел размером 512 М
При таком размере он заполнился на стадии настройки системы. Устанавливайте OS Linux по возможности с минимального iso образа системы!
SWAP-файл
Использование файла очень удобно особенно когда нет точного понимания какие будут окончательные аппаратные параметры системы. Файл можно создать в любом удобном месте и необходимым вам размером. Ниже я расскажу как это сделать.
ZRAM и ZSWAP
Вариант с использованием этих вариантов требует наличие хорошего опыт в использовании Linux систем. На мой взгляд данный способ имеет смысл использовать с хорошим знанием системы на которой это будет работать.
ZRAM — это модуль ядра Linux, позволяющий сжимать содержимое оперативной памяти, и таким образом увеличивать ее объем в несколько раз. ZRAM создает сжатое блочное устройство в ОЗУ которое чаще всего используется как swap. При этом степень сжатия данных получается в среднем 3:1. Это означает что на 1 гигабайт подкачки будет использовано в 333 мегабайт физической памяти.
ZSWAP — тличается от ZRAM тем, что использует существующий swap-раздел на диске, а в ОЗУ создаётся пул со сжатыми данными (кэшем). После того как пул до отказа забьётся сжатыми данными, он сбросит их в раздел подкачки и снова начнёт принимать и сжимать данные. По утверждению разработчиков, в их конфигурации при компиляции ядра в ситуации когда происходит своппинг, выигрыш по объему ввода/вывода составил 76%, а время выполнения операции сократилось на 53%. При использовании ZSWAP, используется раздел swap на диске, в ОЗУ хранится только сжатый кэш.
Создание файла подкачки Linux
Если вы удостоверились в том, что файл подкачки отсутствует, можно переходить к его созданию. Пример, приведенный ниже, будет показан с использованием операционной системы Ubuntu 18.04, но работать это должно и на других дистрибутивах Linux.
Шаг 1: Создаем swap файл
Давайте создадим файл подкачки для нашей Ubuntu. Для примера его размер составит 1 Гб. Запустите терминал и введите команду, приведенную ниже:
Для обеспечения безопасности файла обязательно устанавливаем на него нужные права.
При этом вместо «swapfile» мы можем указать любое другое название.
Шаг 2: Создание файловой системы
Создание swap linux ещё не завершено. Теперь необходимо указать нашей операционной системе, что созданный объект должен использоваться как файл подкачки. Для этого мы будем использовать команду, приведенную ниже:
Если все сделано верно, результат будет выглядеть так:
Шаг 3: Активируем файл подкачки
Хорошо, теперь наш Linux понимает, что это файл подкачки, но этого недостаточно. Нам также необходимо включить SWAP:
Давайте проверим, все ли мы сделали правильно:
Отлично, операционная система распознала наш файл подкачки и начала его использовать. Мы видим тип в поле TYPE и размер в поле SIZE.
Шаг 4. Сохранение изменений после перезагрузки
Все операции, которые мы предприняли выше, временны. Как только компьютер будет перезагружен, они отменятся. Для того чтобы сделать изменения постоянными, нам необходимо дописать кое-какую информацию в /etc/fstab. Для этого поступаем так:
Прежде чем начать работать с файлом, о котором мы говорим, необходимо обязательно создать его резервную копию:
После этого можно переходить непосредственно к добавлению нужных нам данных. Нам надо добавить в файл такую строчку:
Это реализуется через текстовый редактор, запущенный с правами суперпользователя, либо при помощи введенной в терминал команды:
Готово. Изменения сохранены и файл подкачки не сбросится после перезагрузки операционной системы.
Пыль веков
-
►
(4)
►
июля
(1)►
июня
(1)►
февраля
(1)►
января
(1)
-
►
(22)
►
декабря
(1)►
ноября
(1)►
октября
(2)►
сентября
(2)►
августа
(1)►
июля
(1)►
июня
(2)►
мая
(2)►
апреля
(3)►
марта
(3)►
февраля
(2)►
января
(2)
-
►
(29)
►
декабря
(3)►
ноября
(2)►
октября
(2)►
сентября
(2)►
августа
(4)►
июля
(3)►
июня
(2)►
мая
(2)►
апреля
(2)►
марта
(2)►
февраля
(2)►
января
(3)
-
►
(27)
►
декабря
(2)►
ноября
(3)►
октября
(2)►
сентября
(2)►
августа
(2)►
июля
(2)►
июня
(2)►
мая
(2)►
апреля
(3)►
марта
(3)►
февраля
(2)►
января
(2)
-
►
(31)
►
декабря
(3)►
ноября
(2)►
октября
(3)►
сентября
(3)►
августа
(4)►
июля
(3)►
июня
(2)-
►
мая
(2)
►
апреля
(3)►
марта
(2)►
февраля
(2)►
января
(2) -
-
►
(35)
►
декабря
(2)►
ноября
(3)►
октября
(2)►
сентября
(3)►
августа
(3)►
июля
(2)►
июня
(3)►
мая
(3)►
апреля
(5)►
марта
(4)►
февраля
(2)►
января
(3)
-
►
(64)
►
декабря
(6)►
ноября
(4)►
октября
(3)►
сентября
(4)►
августа
(5)►
июля
(6)►
июня
(7)►
мая
(7)►
апреля
(6)►
марта
(6)►
февраля
(4)►
января
(6)
-
►
(91)
►
декабря
(7)►
ноября
(7)►
октября
(5)►
сентября
(11)►
августа
(5)►
июля
(8)►
июня
(11)►
мая
(6)►
апреля
(6)►
марта
(5)►
февраля
(12)►
января
(8)
-
►
(59)
►
декабря
(10)►
ноября
(9)►
октября
(9)►
сентября
(9)►
августа
(13)►
июля
(9)
Файл подкачки
Файл подкачки выполняет те же функции, что и раздел, но является более удобным в использовании.
Удобства использования файла подкачки выражаются в следующем:
а) файл подкачки создаётся как обычный файл, то есть не нужно делать разметку диска
б) для подключения файла подкачки не нужно перезагружать операционную систему
в) для изменения размера файла подкачки не нужно перезагружать операционную систему
г) для отключения и удаления файла подкачки не нужно перезагружать компьютер
То есть, вполне реальна ситуация, когда вам нужен файл подкачки на короткое время — например, на час. Вы можете его создать, подключить, выполнить задачу, которая требует значительный объёмов оперативной памяти, а поле завершения работы отключить и удалить его. Это особенно актуально, если у вас, например, быстрый, но не большой по объёму SSD накопитель — и мы не хотите постоянно держать файл подкачки, особенно если он не особенно нужен большую часть времени.
Ещё вариант с файлом подкачки удобен на VPS хостинге, когда не нужны лишние простои сервера из-за обслуживания, и невозможность физического доступа требует обращения в службу поддержки.
Empty Swap
Even if you have lots of RAM and even if you have a low swappiness value, it is possible that your computer swaps. This can hurt the multitasking performance of your desktop system.
You can use the following script to get the swap manually back into RAM:
- Place the script e.g. /usr/local/sbin:
gksudo gedit /usr/local/sbin/swap2ram.sh
- Copy-paste the script into the file:
-
#!/bin/sh mem=$(LC_ALL=C free | awk '/Mem:/ {print $4}') swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}') if ; then echo "ERROR: not enough RAM to write swap back, nothing done" >&2 exit 1 fi swapoff -a && swapon -a
- Save and close gedit
- Make the script executable:
sudo chmod +x /usr/local/sbin/swap2ram.sh
- Execute:
sudo /usr/local/sbin/swap2ram.sh
Performance
Swap operations are usually significantly slower than directly accessing data in RAM. Disabling swap entirely to improve performance can sometimes lead to a degradation, since it decreases the memory available for VFS caches, causing more frequent and costly disk I/O.
Swap values can be adjusted to help performance:
Swappiness
The swappiness sysctl parameter represents the kernel’s preference (or avoidance) of swap space. Swappiness can have a value between 0 and 200 (max 100 if Linux < 5.8), the default value is 60. A low value causes the kernel to avoid swapping, a high value causes the kernel to try to use swap space, and a value of 100 means IO cost is assumed to be equal. Using a low value on sufficient memory is known to improve responsiveness on many systems.
To check the current swappiness value:
$ sysctl vm.swappiness
Alternatively, the files or can be read in order to obtain the raw integer value.
Note: As is a lot less organized and is kept only for compatibility purposes, you are encouraged to use instead.
To temporarily set the swappiness value:
# sysctl -w vm.swappiness=10
To set the swappiness value permanently, create a configuration file. For example:
/etc/sysctl.d/99-swappiness.conf
vm.swappiness=10
Priority
If you have more than one swap file or swap partition you should consider assigning a priority value (0 to 32767) for each swap area. The system will use swap areas of higher priority before using swap areas of lower priority. For example, if you have a faster disk () and a slower disk (), assign a higher priority to the swap area located on the fastest device. Priorities can be assigned in fstab via the parameter:
/dev/sda1 none swap defaults,pri=100 0 0 /dev/sdb2 none swap defaults,pri=10 0 0
Or via the parameter of swapon:
# swapon --priority 100 /dev/sda1
If two or more areas have the same priority, and it is the highest priority available, pages are allocated on a round-robin basis between them.
Using zswap or zram
Zswap is a Linux kernel feature providing a compressed write-back cache for swapped pages. This increases the performance and decreases the IO-Operations. ZRAM creates a virtual compressed Swap-file in memory as alternative to a swapfile on disk.
Что такое swap
В линуксоподобных ОС под свопом понимают механизм организации виртуальной памяти, при которой часть хранимых в ОЗУ данных (как правило, редко используемых), перемещается на временное хранение в специальный раздел или файл на жёстком или твердотельном диске.
Весь объём физической памяти в Linux разбивается на страницы. По мере необходимости содержимое отдельных страниц перемещается на выделенный раздел диска, именуемый swap space или на отдельный файл (аналог файла подкачки в Windows). Сама процедура освобождения ОП называется свопингом, а общий размер физической и swap-памяти – объёмом доступной виртуальной памяти.
Просмотр активного SWAP в Linux
Включение SWAP начинается с проверки, активен ли он в системе. Лучший способ сделать это — проверить файл / proc / swap. В нем перечислены активные устройства, которые в настоящее время настроены как SWAP.
Чтобы просмотреть файл / proc / swaps, выполните команду cat
Обратите внимание, что в зависимости от настроек вашей системы вам может потребоваться запустить эту команду с помощью команды sudo
cat /proc/swaps
Или, если вам нужно запустить его с помощью sudo, выполните:
sudo cat /proc/swaps
В считывании вы заметите устройства подкачки в файле. В зависимости от ваших настроек, у вас может быть рабочий раздел или файл подкачки в корневом каталоге.
Вам нужно сохранить показания SWAP для быстрого доступа в дальнейшем? Сохраните его в файл, выполнив:
cat /proc/swaps/ >> ~/swap-info.txt
Или же
sudo cat /proc/swaps/ >> /home/username/swap-info.txt
How to Add Swap Space on Debian 10 Linux
22 Апреля 2021
|
Debian
Это руководство проведет вас по шагам добавления файла подкачки в Debian 10 Buster.
Swap — это пространство на диске, которое используется, когда объем физической памяти заполнен. Когда в системе Linux заканчивается ОЗУ, неактивные страницы перемещаются из ОЗУ в область подкачки.
Пространство подкачки может иметь форму выделенного раздела подкачки или файла подкачки. Обычно при запуске виртуальной машины Debian раздел подкачки отсутствует, поэтому единственный вариант — создать файл подкачки.
Прежде чем вы начнете
Хотя это возможно, использование нескольких пространств подкачки на одной машине не является обычным явлением. Чтобы проверить, включена ли в вашей установке Debian свопинг, выполните следующую команду:
Если вывод пуст, это означает, что в системе нет места для подкачки.
В противном случае, если вы получите что-то вроде ниже, в вашей системе Debian уже включен свопинг.
Чтобы активировать подкачку, пользователь, выполняющий команды, должен иметь права sudo .
Создание файла подкачки
В этом примере мы создадим и активируем своп. Чтобы создать более крупный своп, замените его размером желаемого пространства подкачки.
Следующие шаги показывают, как добавить пространство подкачки в Debian 10.
-
Сначала создайте файл, который будет использоваться для свопа:
Если он не установлен, или вы получаете сообщение об ошибке, в котором говорится, что вы можете использовать следующую команду для создания файла подкачки:
-
Только пользователь root должен иметь возможность читать и записывать файл подкачки. Выполните команду ниже, чтобы установить правильные разрешения :
-
Используйте этот инструмент, чтобы настроить область подкачки Linux для файла:
-
Активируйте файл подкачки:
Чтобы сделать изменение постоянным, откройте файл:
и вставьте следующую строку:
/ etc / fstab
-
Убедитесь, что своп активен, используя команду или, как показано ниже:
Регулировка значения подкачки
Swappiness — это свойство ядра Linux, которое определяет, как часто система будет использовать пространство подкачки. Подкачка может иметь значение от 0 до 100. Низкое значение заставит ядро по возможности избегать подкачки, в то время как более высокое значение заставит ядро использовать пространство подкачки более агрессивно.
Значение подкачки по умолчанию — 60. Проверить текущее значение подкачки можно с помощью команды:
Хотя значение подкачки 60 подходит для большинства систем Linux, для производственных серверов следует установить более низкое значение.
Например, чтобы установить значение подкачки 10, введите:
Чтобы сделать этот параметр постоянным при перезагрузке, добавьте в файл следующую строку :
/etc/sysctl.conf
Оптимальное значение подкачки зависит от рабочей нагрузки вашей системы и того, как используется память. Вы должны настраивать этот параметр небольшими приращениями, чтобы найти оптимальное значение.
Удаление файла подкачки
Чтобы деактивировать и удалить файл подкачки, выполните следующие действия:
-
Отключите пространство подкачки, запустив:
-
Откройте файл в текстовом редакторе и удалите запись файла подкачки .
-
Наконец, удалите фактический файл подкачки с помощью команды:
Вы узнали, как создать файл подкачки, а также активировать и настроить пространство подкачки на вашем компьютере с Debian 10.
ПО ядра и безопасность подкачки
Память ядра (модулей ядра) не подлежит выгрузке в область подкачки, соответственно, не подвержена связанным с нахождением в области подкачки рискам.
Однако, уровень привилегий ядра позволяет осуществлять доступ к любым системным ресурсам, соответственно, модули ядра сами являются потенциальной угрозой конфиденциальности области подкачки.
В отношении модулей ядра следует применять общепринятые меры безопасности: использовать только подписанные модули ядра, полученные из доверенных источников, а при возможности — контролировать исходные тексты на наличие необычных системных вызовов. Дополнительной мерой защиты также является применение защитного преобразования данных.
Как создать и подключить файл подкачки SWAP
Проверка наличия свопа в системе
Для начала, нужно убедиться, что своп ещё не подключен:
swapon -s
Если команда выдала пустой результат или что-то навроде:
Filename Type Size Used Priority
— значит, своп, скорее всего отсутствует.
Дополнительно проверим командой:
free -m
Проверка наличия свободного места на диске
Теперь, надо проверить, сколько свободного места есть на диске:
df -h
В результате, мы увидим что-то подобное:
:~# df -h Файловая система Размер Использовано Дост Использовано% Cмонтировано в /dev/vda1 30G 20G 9,0G 66% / udev 10M 0 10M 0% /dev tmpfs 403M 41M 362M 11% /run tmpfs 1006M 336K 1005M 1% /dev/shm tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 1006M 0 1006M 0% /sys/fs/cgroup tmpfs 1006M 492K 1005M 1% /tmp
Как мы видим, доступно 9 гигабайт дискового пространства — вполне достаточно, чтобы создать своп-файл.
Какого размера создать swap
Исходите из принципа — сколько может понадобиться, столько и выделяйте. Как правило, можно начинать с размера объёма оперативной памяти, либо его удвоенного количества. Например, если у вас в системе 2 гигабайта оперативки, своп можно сделать размером 2-4 гигабайта, как правило, этого должно хватать. Но, Вы можете скорректировать его размер под себя.
Создание файла SWAP
- Быстрый способ
- Используем :
fallocate -l 4G /swapfile
Результатом будет пустая строка, это нормально. В отличие от , результат будет получен почти сразу, и я рекомендую именно его.
</pre>
- Традиционный, медленный способ
dd if=/dev/zero of=/swapfile bs=1G count=4
Синтаксис команды простой:
</pre>
- dd — команда предназначена для того, чтобы что-то куда-то копировать побайтово;
- if=/dev/zero — указывает на источник, т.е. на то, откуда копируем, в данном случае из /dev/zero — это специальный файл в UNIX-подобных системах, представляющий собой источник нулевых байтов;
- of=/swapfile — указывает путь назначения, куда копируем данные;
- bs=1G — количество байт, которые будут записаны за раз. В нашем случае, 1 гигабайт. Обозначения: — гигабайт, — мегабайт, — килобайт, и так далее;
- count=4 — сколько блоков размером с будет создано, в нашем случае 4.
</ul></dl>
Теперь, когда файл создан, проверим результат:
ls -lh /swapfile
В результате увидим: Как видим, файл создался верно и с нужным объёмом.
Как подключить SWAP файл
Для начала, ограничим права доступа к вновь созданному файлу.
chmod 600 /swapfile
Проверим результат:
ls -lh /swapfile
В результате, мы должны увидеть подобное: Права прописаны верно.
Теперь нужно сделать из файл подкачки:
mkswap /swapfile
В результате, увидим примерно следующее:
Теперь, файл готов в роли свопа. Подключим его к системе:
swapon /swapfile
Всё, теперь своп подключен и работает. Осталось проверить правильность работы самой первой командой:
swapon -s
Filename Type Size Used Priority /swapfile file 4193300 0 -1
Своп также будет виден в стандартных командах:
free -m
total used free shared buffers cached Mem: 2010 1887 122 0 5 30 -/+ buffers/cache: 827 1183 Swap: 4095 0 4095
Всё, теперь точно, своп в системе готов и будет использоваться при необходимости.
Добавление свопа в автозагрузку
Чтобы при перезагрузке сервера своп автоматически подтягивался в систему, нужно прописать его в :
echo "/swapfile none swap sw 0 0" >> /etc/fstab
nano /etc/fstab
Размещение
SWAP может быть размещен на разделе диска, в или в RAM. Исторически в Linux SWAP размещался на разделе, но в современных дистрибутивах производительность SWAP-файла не уступает SWAP-разделу. Однако стандартный установщик Ubuntu (до версии 17.04) не умеет создавать SWAP-файл при установке и выдает предупреждение, если SWAP-раздел не определен при разметке диска. Начиная с версии 17.04, Ubuntu предлагает по умолчанию создавать SWAP в файле (объем определяется как 5% от свободного на диске места, но не более 2 Гб). Использование SWAP-файла имеет некоторые преимущества: он не занимает отдельный раздел, его легко создать, изменить его размер или удалить.
Дополнительно при выборе размещения SWAP нужно учитывать, что не все файловые системы позволяют использовать прямую адресацию блоков SWAP-файла. Так, к примеру, нельзя использовать SWAP в файле на разделе с файловой системой btrfs(по состоянию на середину 2017).