Особенности создания и подключения swap-файла в Linux

Особенности создания и подключения swap-файла в Linux Хостинг

Сегодня мы будем говорить о файле подкачки в Linux. Расскажем для чего он нужен, как создать, изменить размер или удалить. В общем, все, что вам может понадобиться при работе со .

В операционной системе Linux, как и в других ОС, файл подкачки нужен для страховки оперативной памяти. Когда установленный объем ОЗУ заканчивается, используется именно выделенная область из файла подкачки. Это может понадобиться в двух случаях:

  • Для того чтобы при полной занятости и, как следствие, отсутствия свободной оперативной памяти, компьютер не тормозил.
  • Для распределения приоритетов (важным процессам отдается физическая оперативная память, а второстепенным файл подкачки Linux).

Сам по себе swap — это отдельный логический раздел вашего диска либо просто файл на системном разделе. Чаще всего он создается именно при установке операционной системы. Но создать swap linux можно и после завершения инсталляции ОС.

В последних версиях операционной системы Ubuntu Linux файл подкачки создается автоматически вне зависимости от того, хотите вы этого или нет. При этом его размер составляет около 1 Гб.

  • Как посмотреть swap в Linux
  • Создание файла подкачки Linux
  • Настройка swappiness
  • Размер swap файла в Linux
  • Как удалить файл подкачки в Linux
  • В заключение
Содержание
  1. Как посмотреть swap в Linux
  2. Создаем swap файл
  3. Создание файловой системы
  4. Активируем файл подкачки
  5. Шаг 4. Сохранение изменений после перезагрузки
  6. Настройка swappiness
  7. Размер swap файла в Linux
  8. Как удалить файл подкачки в Linux
  9. В заключение
  10. Как установить Linux на SSD?
  11. Выбор файловой системы
  12. Настройка файла подкачки
  13. Настройка монтирования в fstab
  14. Настройка TRIM
  15. Выводы
  16. Обратите внимание
  17. Проверка Swap
  18. Настройка файла подкачки в Ubuntu 20
  19. Проверка места на диске
  20. Создание файла подкачки
  21. Активация swap
  22. Постоянный файл подкачки
  23. Настройка раздела подкачки в Ubuntu 20
  24. Дополнительные настройки
  25. Введение
  26. Нужен SWAP или нет?
  27. Варианты размещения SWAP
  28. Проверка наличия SWAP
  29. Создание SWAP-файла
  30. Оптимизация SWAP
  31. Особенности использования памяти в Linux
  32. VFS cache pressure
  33. Создание и использование пространств подкачки
  34. Пространства подкачки и SSD
  35. Спящий режим и пространства подкачки
  36. Какой размер файла подкачки выбрать?
  37. Переполнение из памяти
  38. Приоритезация
  39. Включает спящий режим
  40. Вам нужен раздел SWAP?
  41. Когда разделы SWAP не помогают
  42. Рекомендации
  43. Изменение Swappiness
  44. Разрушая мифы о свопности
  45. Ваша оперативная память разделена на зоны
  46. Значение PAGESIZE

Как посмотреть swap в Linux

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

Особенности создания и подключения swap-файла в Linux

Используемая команда отображает размер файла подкачки вашей операционной системы. Однако, по ее результатам мы не можем определить – это файл подкачки или раздел подкачки. Поэтому будем использовать дополнительный другую команду, чтобы посмотреть swap linux. Вводим в терминал следующее:

Особенности создания и подключения swap-файла в Linux

Как видите, в нашем случае под выделено 1.4 Гб и это файл. То есть, он находится не на отдельном разделе, а на том же диске, на котором установлена операционная система.

Если это будет отдельный логический том, то под надписью «» мы увидим слово «partition».

Если бы файл подкачки в вашей операционной системе отсутствовал, результат работы команды — выглядел бы примерно так:

Особенности создания и подключения swap-файла в Linux

То есть, вместо каких-либо данных о файле подкачки вы увидите нули.

Если вы удостоверились в том, что файл подкачки отсутствует, можно переходить к его созданию. Пример, приведенный ниже, будет показан с использованием операционной системы Ubuntu 18.04, но работать это должно и на других дистрибутивах Linux.

Создаем swap файл

Давайте создадим файл подкачки для нашей Ubuntu. Для примера его размер составит 1 Гб. Запустите терминал и введите команду, приведенную ниже:

sudo fallocate -l 1G /swapfile

Для обеспечения безопасности файла обязательно устанавливаем на него нужные права.

sudo chmod 600 /swapfile

При этом вместо «swapfile» мы можем указать любое другое название.

Особенности создания и подключения swap-файла в Linux

Создание файловой системы

Создание swap linux ещё не завершено. Теперь необходимо указать нашей операционной системе, что созданный объект должен использоваться как файл подкачки. Для этого мы будем использовать команду, приведенную ниже:

sudo mkswap /swapfile

Если все сделано верно, результат будет выглядеть так:

Особенности создания и подключения swap-файла в Linux

Активируем файл подкачки

Хорошо, теперь наш Linux понимает, что это файл подкачки, но этого недостаточно. Нам также необходимо включить :

sudo swapon /swapfile

Особенности создания и подключения swap-файла в Linux

Давайте проверим, все ли мы сделали правильно:

Особенности создания и подключения swap-файла в Linux

Отлично, операционная система распознала наш файл подкачки и начала его использовать. Мы видим тип в поле и размер в поле .

Шаг 4. Сохранение изменений после перезагрузки

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

Прежде чем начать работать с файлом, о котором мы говорим, необходимо обязательно создать его резервную копию:

sudo cp /etc/fstab /etc/fstab.back

Особенности создания и подключения swap-файла в Linux

После этого можно переходить непосредственно к добавлению нужных нам данных. Нам надо добавить в файл такую строчку:

/swapfile none swap sw 0 0

Это реализуется через текстовый редактор, запущенный с правами суперпользователя, либо при помощи введенной в терминал команды:

Особенности создания и подключения swap-файла в Linux

Готово. Изменения сохранены и файл подкачки не сбросится после перезагрузки операционной системы.

Настройка swappiness

Дальше будет рассмотрена настройка swap linux. У файла подкачки существуют параметры, которые сообщают ОС, как часто его нужно использовать. Это явление называется «свопингом» и может иметь значение в пределах 0 — 100. Если это значение ближе к 100, ядро будет перемещать в раздел подкачки больше информации чтобы освободить память. При значениях ближе к нулю, система будет использовать подкачку только при крайней необходимости.

К примеру, в версии Ubuntu inux для рабочего стола устанавливается параметр 60, а в серверных редакциях операционной системы — 1. Для того чтобы проверить, какой параметр используется в нашей ОС, вводим в терминал такую команду:

Особенности создания и подключения swap-файла в Linux

Как видите, в нашем случае «свопинг» установлен как 60. Если же вы хотите поменять swappiness, можете воспользоваться оператором, цифра в конце которого и будет новым значением:

sudo sysctl vm.swappiness=25

Особенности создания и подключения swap-файла в Linux

Как и в случае с конфигурацией файла подкачки, данный параметр изначально будет временным и обнулится при следующей перезагрузке. Для того чтобы сделать его постоянным, в самом конце файла /etc/sysctl.conf записываем значение vm.swappiness=25.

Для этого можно воспользоваться, например, текстовым редактором, запущенным с администраторскими полномочиями.

Размер swap файла в Linux

Существует сразу несколько вариантов, позволяющих увеличить файл подкачки linux или уменьшить его. Однако, прежде чем их рассмотреть, необходимо напомнить об одном очень важном моменте:

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

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

sudo swapoff /swapfile

Особенности создания и подключения swap-файла в Linux

Вторым этапом меняем размер файла подкачки, воспользовавшись командой, приведенной ниже. При этом размер вашего swap файла нужно указать вместо параметра 2G (2 гигабайта):

sudo fallocate -l 2G /swapfile

Теперь форматируем полученный файл в файловую систему swap:

А затем включаем его обратно:

Особенности создания и подключения swap-файла в Linux

При этом операционная система Linux позволяет использовать сразу несколько swap.

Как удалить файл подкачки в Linux

Если по каким-то причинам файл подкачки вам не нужен, можете удалить его. Для этого сначала надо отключить swap linux:

Особенности создания и подключения swap-файла в Linux

А потом удаляем:

sudo rm /swapfile

Особенности создания и подключения swap-файла в Linux

Не забудьте установить права на вновь созданный файл подкачки так, как мы описывали это выше.

В заключение

Надеемся теперь концепция файла подкачки в Linux ясна вам на 100%. Можете переходить к практике и проверять наличие swap на вашем компьютере или ноутбуке, его настройке, созданию или даже удалению. Если в результате у вас останутся какие-то вопросы, предложения или замечания, можете задать их нам, воспользовавшись формой комментирования ниже.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Диски, использующие электронные ячейки памяти (SSD — Solid State Drive), мало весят, работают бесшумно и потребляют втрое меньше энергии, чем жёсткие диски (HDD). Однако главная причина их популярности – фантастическая скорость работы. Операционная система загружается быстро, операции с файлами большого размера выполняются значительно быстрее.

Недостаток твердотельных накопителей – износ ячеек. Память деградирует в процессе перезаписи данных. В среднем через 0,5-3 года диск может выйти из строя. Для того, чтобы продлить жизнь накопителя, использование Linux на SSD должно подчиняться определённым правилам. Каким – рассмотрим в этом материале.

  • Особенности работы SSD
  • Как установить Linux на SSD?
  • Выводы

Классические жёсткие диски (HDD) хранят данные в магнитном слое. Для чтения и записи используется позиционируемая магнитная головка. Перемещение считывателя требует какого-то времени, поэтому скорость работы HDD ограничена.

Принцип работы SSD основан на использовании электронных ячеек памяти. Единицу информации хранит заряд внутри транзистора, обращение к ячейкам выполняет контроллер. Задержки при чтении или записи минимальны.

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

Инженеры успешно работают над продлением срока службы SSD, но сами пользователи также могут продлив срок жизни накопителя, правильно настроив операционную систему.

В Интернете есть сотни советов, выдаваемых поисковиками по запросу «Установка Linux на SSD», однако мы советуем воспринимать написанное с осторожностью. Остановимся на моментах, способствующих улучшению состояния SSD-хранилища без риска потери данных.

Как установить Linux на SSD?

Внешне установка операционной системы Linux на твердотельный накопитель выглядит так же, как и на магнитный диск. Могут отличаться лишь настройки файловой системы, раздела подкачки и параметры монтирования разделов.

Выбор файловой системы

На данном этапе для Unix разработаны специальные файловые системы, учитывающие особенности работы SSD-дисков:

  • Extended4 (ext4) – самая популярная и стабильная файловая система в этой среде, поддерживающая отключаемое журналирование, а также функцию TRIM.
  • BtrFS – файловая система, разработанная инженерами Oracle, поддерживает зеркальные копии структур данных и контрольные суммы, что позволяет легко восстанавливать файлы при повреждении. Журналы не ведутся, поэтому дополнительной нагрузки на диск не возникает.
  • XFS – файловая система, разработанная Silicon Graphics для работы с большими файлами, журналы ведутся только для регистрации изменений структур данных.
  • Flash-Friendly File System (F2FS) – разработка Samsung специально для флешек и SSD. Учитывает особенности износа памяти, собирает данные в пакет, который затем записывает в свободные области за один цикл.

Как видим, выбор богат, поле для экспериментов широкое. Однако если вы спросите, какая файловая система на SSD для Linux будет наилучшей, мы посоветуем остановиться на проверенной годами ext4. Прочие системы продолжают дорабатываться, в них могут быть критические ошибки.

Настройка файла подкачки

Оперативной памяти много не бывает. Если у вас её меньше, чем 4 Гб, рекомендуем докупить и установить дополнительные планки. В этом случае файл подкачки будет меньше задействован операционной системой. Отсюда следует резонный вопрос: нужен ли swap для Linux на SSD?

При установке системы мы всё же рекомендуем создать файл подкачки. В тех случаях, когда памяти недостаточно, Linux начинает выгружаться на диск, но не падает. У вас будет шанс обнаружить и выгрузить слишком ресурсоёмкую программу.

Специфика выгрузки сегментов памяти в Linux в файл подкачки регулируется параметром swappiness. По умолчанию его значение равно 60. Чем меньше эта величина, тем сильнее должна быть перегружена система перед началом выгрузки памяти на диск.

Для того, чтобы проверить эти настройки, запустите Terminal и выполните команду:

Особенности создания и подключения swap-файла в Linux

В нашем случае установлено значение по умолчанию. Для того, чтобы его изменить, необходимо отредактировать файл /etc/sysctl.conf. Откройте файл в редакторе с помощью команды:

sudo nano /etc/sysctl.conf

Перейдите в конец файла, нажав на клавиатуре сочетание Alt-/, и добавьте строку:

Особенности создания и подключения swap-файла в Linux

Закройте редактор, сохранив изменения в отредактированном файле. Новые настройки вступят в силу после перезагрузки операционной системы.

Настройка монтирования в fstab

После того, как установка Linux на SSD завершена, рекомендуется изменить настройки монтирования. Особенностью Unix-систем является наличие специального атрибута у файлов — времени последнего доступа (access time stamp). Этот атрибут перезаписывается каждый раз при обращении какого-либо процесса к файлу. Необходимость атрибута сомнительна, а нагрузка на SSD существенна.

Читайте также:  Быстрый старт | Wialon Hosting

Обновление атрибута времени последнего доступа отключается, если добавить в строку монтирования дисков опцию noatime. Для изменения настроек необходимо отредактировать файл /etc/fstab. Это системный файл, поэтому для его редактирования нужны права суперпользователя:

sudo nano /etc/fstab

С помощью стрелок установите курсор в позицию после обозначения типа файловой системы (ext4) и после пробела впишите ключевое слово noatime. После него поставьте запятую. Обратите внимание, что пробела между запятой и следующим словом быть не должно.

Особенности создания и подключения swap-файла в Linux

Изменённые строки должны выглядеть так:

UUID=xxxxxxx / ext4 noatime,errors=remount-ro 0 1

UUID=xxxxxxx /storage ext4 noatime,defaults 0 1

Настройка TRIM

Настройка SSD в Linux близится к завершению. Остаётся рассмотреть метод TRIM. Так как ячейки памяти изнашиваются, встроенный контроллер каждый раз записывает данные в новые блоки. Когда свободное место подходит к концу, диск начинает притормаживать.

Файлы в операционной системе исправляются, затираются, удаляются. Задача команды TRIM (Data Set Management) – сообщить контроллеру SSD, что те или иные блоки данных уже пусты и в них можно опять записывать информацию.

В Linux команда TRIM по умолчанию выполняется раз в неделю. В случае повышенной интенсивности использования компьютера этого недостаточно, желательно запускать оптимизацию чаще.

Проверьте установки таймера, запускающего выполнение команды TRIM:

systemctl cat fstrim.timer

Особенности создания и подключения swap-файла в Linux

sudo mkdir -v /etc/systemd/system/fstrim.timer.d

Теперь откройте созданный файл с помощью редактора Nano:

sudo nano /etc/systemd/system/fstrim.timer.d/override.conf

Добавьте в файл следующие строки:

Особенности создания и подключения swap-файла в Linux

Закройте редактор, сохранив изменения в отредактированном файле. Для применения настроек перегрузите компьютер или выполните команду:

sudo systemctl daemon-reload

Убедитесь в том, что изменения настроек применены, выполнив команду:

Особенности создания и подключения swap-файла в Linux

Всё в порядке, команда TRIM теперь будет выполняться ежедневно.

Выводы

Твердотельный накопитель работает в 100 раз быстрее, чем магнитный диск, однако также имеется и своя специфика использования. Последние версии Windows или Ubuntu учитывают особенности SSD, поэтому могут быть рекомендованы к использованию с этими устройствами. Для того, чтобы установить Linux на SSD, не нужны какие-то особые знания. Мастер установки подскажет, какие шаги надо выполнить.

Скорость SSD в Linux можно измерить с помощью команды:

Особенности создания и подключения swap-файла в Linux

В результате выполнения команды на экран будет выведено время загрузки системы. Для продления срока службы SSD с обычных 3-5 до 10 лет вновь установленную систему следует правильно настроить. Не нужно выполнять советы, взятые из непроверенных источников. Достаточно выполнить важные настройки, устраняющие выполнение лишних операций записи на SSD.

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

Самый простой способ увеличить количество оперативной памяти и защитить систему от переполнения памяти, это добавить раздел swap в Ubuntu. В этой статье будет рассмотрено как выполняется настройка swap в Ubuntu 20.04. Будет рассмотрен вариант с добавлением swap как на время работы устройства, так и на постоянное использование.

  • Обратите внимание
  • Что такое Swap?
  • Проверка Swap
  • Настройка файла подкачки в Ubuntu 20.04
  • Настройка раздела подкачки в Ubuntu 20.04
  • Дополнительные настройки
  • Выводы

Обратите внимание

Хотя использование раздела подкачки на жестком диске HDD это привычное явление, применение такого метода для SSD может вызвать проблемы. SSD имеет ограниченное количество перезаписей одного сектора, а область swap постоянно перезаписывается, это очень сильно снизит срок службы вашего диска. Поэтому использование swap пространства на SSD строго не рекомендуется.

Swap (так же известна как пространство подкачки) — это область на жестком диске, которая используется для временного хранения данных из оперативной памяти, для которых там больше нет места. Это позволяет увеличить объем информации, которую система может хранить в рабочей памяти. Пространство подкачки используется только тогда, когда память уже полностью занята, и туда будут помещаться только данные, которые давно использовались.

Работа с информацией будет выполняться намного медленнее, чем в оперативной памяти, но операционная система будет продолжать работать и использовать swap только для старых данных. В целом, это может быть отличной защитой от переполнения оперативной памяти. Пространство подкачки можно настроить двумя способами, добавив раздел подкачки для Ubuntu на диске или создать файл подкачки.

Проверка Swap

Если команда вернет строчку с названием swapfile, это означает что swap в системе уже присутствует:

Особенности создания и подключения swap-файла в Linux

Если ничего не будет выведено, значит в системе swap не настроен:

Особенности создания и подключения swap-файла в Linux

Также можно убедиться, что swap активирован или не активирован в системе с помощью утилиты free которая помимо отображения объёма оперативной памяти также отображает информацию об разделе swap:

Строка со swap отображает значение 2,0 GB. Это означает что swap включен и будет использоваться 2 ГБ жёсткого диска, когда память будет переполнена:

Особенности создания и подключения swap-файла в Linux

Если значения в разделе swap отображаются по нулям это значит, что раздел swap не подключен:

Особенности создания и подключения swap-файла в Linux

Настройка файла подкачки в Ubuntu 20

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

Проверка места на диске

Необходимо убедится, что на жёстком диске есть достаточно свободного места. Самый простой способ узнать количество свободного места в терминале – воспользоваться утилитой df:

Особенности создания и подключения swap-файла в Linux

В данном случае есть достаточно места для размещения и увеличения пространства подкачки. Размер swap в Ubuntu 20.04 зависит от потребностей. Обычно рекомендуют использовать объем в два раза больше, чем реальный размер оперативной памяти. Но как правило больше 4 Гб использовать не нужно. Если планируется использовать гибернацию на персональном компьютере, то нужно использовать объем, равный объему ОЗУ.

Создание файла подкачки

Самый быстрый способ создать swap файл в Ubuntu 20.04 – это использовать утилиту fallocate, она создает файл нужного размера мгновенно. Поскольку в качестве примера используется машина с 8 Гб оперативной памяти, необходимо добавить раздел подкачки на 3 Гб. Для этого необходимо выполнить команду:

sudo fallocate -l 3G /swapfile

Особенности создания и подключения swap-файла в Linux

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

ls -lh /swapfile

Особенности создания и подключения swap-файла в Linux

Активация swap

Когда файл готов, необходимо превратить его в файл swap. Сначала нужно заблокировать доступ к нему всем кроме суперпользователя. Для этого необходимо выполнить:

Теперь только пользователь root может читать и изменить данный файл:

Особенности создания и подключения swap-файла в Linux

Далее необходимо создать файловую систему swap командой:

Особенности создания и подключения swap-файла в Linux

Когда файл будет размещен и промаркирован необходимо включить файл подкачки чтобы начать его использовать:

Особенности создания и подключения swap-файла в Linux

После этого можно убедиться, что swap включен, выполнив команду:

Особенности создания и подключения swap-файла в Linux

Так же наличие swap можно проверить при помощи утилиты free, выполнив команду:

Особенности создания и подключения swap-файла в Linux

Файл подкачки был успешно создан и активирован. Теперь памяти доступно больше и система не зависнет при нехватке оперативной памяти. Но данный способ будет работать только до перезагрузки устройства.

Постоянный файл подкачки

Как уже было сказано ранее, данный swap будет работать только до перезагрузки сервера или компьютера. Чтобы настройка swap в Ubuntu 20.04 сохранялась после перезагрузки нужно отредактировать файл /etc/fstab. Можно вручную добавить строку в файл, но также можно использовать следующую команду:

Особенности создания и подключения swap-файла в Linux

Настройка раздела подкачки в Ubuntu 20

Настройка swap в Ubuntu 20.04 в виде раздела аналогична тем же методам, которые применяются для создания swap в виде файла, отличие только в том, что вместо файла используется раздел. Предположим, необходимо использовать раздел /dev/sda2. Сначала необходимо создать swap из обычного раздела:

sudo mkswap /dev/sda2

Далее активировать раздел подкачки:

sudo swapon /dev/sda2

И проверить все ли прошло правильно:

Если да, то в списке подключенных разделов отобразится нужный. Последним шагом остаётся добавить строку в /etc/fstab для автоматической активации после перезагрузки:

Дополнительные настройки

Можно контролировать интенсивность использования пространства подкачки в Ubuntu 20.04 с помощью параметра ядра swappiness:

Особенности создания и подключения swap-файла в Linux

По умолчанию установлено значение 60. Если это значение ближе к 100, система будет пытаться поместить в подкачку больше данных и сберечь память, при значениях близких к нулю, ядро не переносит данные на диск, если в этом нет крайней необходимости. Этот вариант может сделать систему быстрее, особенно актуально для домашних компьютеров.

Чтобы установить значение 10 необходимо выполнить команду:

Особенности создания и подключения swap-файла в Linux

А для сохранения этой настройки после перезагрузки:

Особенности создания и подключения swap-файла в Linux

Другой параметр, который влияет на количество используемой памяти -vfs_cache_pressure. Он указывает системе какое время нужно хранить открытые файлы в кэше оперативной памяти. Значение 100 заставляет систему удалять такие файлы очень быстро, 0 — держать их в памяти как можно дольше. Проверить текущее состояние можно при помощи команды:

Особенности создания и подключения swap-файла в Linux

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

Особенности создания и подключения swap-файла в Linux

С помощью данной инструкции можно на время решить проблему с пространством подкачки если серверу недостаточно памяти, или поможет предотвратить компьютер от зависания. Настройка swap в Ubuntu 20.04 выполняется очень просто. Если у вас остались вопросы, спрашивайте в комментариях!

Особенности создания и подключения swap-файла в Linux

SWAP один из важных параметров для стабильной работы операционной системы Linux. Споров о том как правильно использовать в интернете существует масса. Для правильной настройки надо иметь понимание для чего используется ваша система.

  • Введение
  • Нужен SWAP или нет?
  • Размер SWAP
  • Варианты размещения SWAP
  • Проверка наличия SWAP
  • Создание SWAP-файла
  • Оптимизация SWAP
  • Вывод

Введение

Постараюсь  коротко рассказать основные моменты которые надо учитывать и дать практические советы проверенные на личном опыте.

Нужен SWAP или нет?

Однозначно нужен! Можно обойтись и без него, но тогда имейте в виду, что:

  • SWAP используется при организации режима сна и при его отсутствии про этот режим можно забыть,
  • Если SWAP отсутствует и память будет исчерпана тогда компьютер зависнет и потребуется выполнять полный сброс (hard reset). У меня был случай когда браузер Chrome скушал всю память и повесил систему.

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

Советов по размеру множество, но мы остановимся на советах разработчиков Red Hat (CentOS):

При современных объемах жестких дисков я бы не стал жалеть места на размер SWAP и уверяю вас что экономия места в данном случае может привести к гораздо большим проблемам.

Варианты размещения SWAP

  • на разделе диска,
  • в файле,
  • или в оперативной памяти использую zRAM.

Исторически в Linux SWAP размещался на разделе, но в современных дистрибутивах производительность SWAP-файла не уступает SWAP-разделу и это весьма радует.

Когда вы точно знаете, что размер оперативной памяти меняться не будет и вы точно уверены в размере SWAP разумно выделить раздел при установке системы.

Использование файла очень удобно особенно когда нет точного понимания какие будут окончательные аппаратные параметры системы. Файл можно создать в любом удобном месте и необходимым вам размером. Ниже я расскажу как это сделать.

Вариант с использованием этих вариантов требует наличие хорошего опыт в использовании Linux систем. На мой взгляд данный способ имеет смысл использовать с хорошим знанием системы на которой это будет работать.

ZRAM — это модуль ядра Linux, позволяющий сжимать содержимое оперативной памяти, и таким образом увеличивать ее объем в несколько раз. ZRAM создает сжатое блочное устройство в ОЗУ которое чаще всего используется как swap. При этом степень сжатия данных получается в среднем 3:1. Это означает что на 1 гигабайт подкачки будет использовано в 333 мегабайт физической памяти.

ZSWAP — отличается от ZRAM тем, что использует существующий swap-раздел на диске, а в ОЗУ создаётся пул со сжатыми данными (кэшем). После того как пул до отказа забьётся сжатыми данными, он сбросит их в раздел подкачки и снова начнёт принимать и сжимать данные.  По утверждению разработчиков, в их конфигурации при компиляции ядра в ситуации когда происходит свопинг, выигрыш по объему ввода/вывода составил 76%, а время выполнения операции сократилось на 53%. При использовании ZSWAP, используется раздел swap на диске, в ОЗУ хранится только сжатый кэш.

Проверка наличия SWAP

Если пусто, значит его нет.

Читайте также:  Настройка nat mikrotik для доступа в интернет

Можно проверить используя утилиту htop.

Создание SWAP-файла

Создадим файл c именем swap размером 4 G в папке корне системы /:

Форматируем файл в формат свопа:

Подключаем файл к системе:

Проверяем результат работы:

Сделаем чтобы swap монтировался при загрузке. Для этого добавляем в fstab необходимый параметр:

В конце файла делаем переход на новую строку!

Сохраняем файл и перезагружаемся.

Оптимизация SWAP

Оптимизация сводится к настройке двух параметров.

Параметры от 0 до 100. При значениях близких к нулю, ядро не переносит данные на диск, если в этом нет крайней необходимости.

Определение используемого параметра swappiness:

Исходя из действующего значения принимаете решение об изменении. Изменим значение до 10:

параметр -w для сохранения этой настройки после перезагрузки.

Показывает системе какое время нужно хранить открытые. Значение по умолчанию 100. При значениях близких к нулю, ядро будет держать их в памяти как можно дольше.

Определение используемого параметра vfs_cache_pressure:

Исходя из действующего значения принимаете решение об изменении. Изменим значение до 1000:

Значительное увеличение vfs_cache_pressure за пределы 100 может отрицательно сказаться на производительности. Для восстановления кода необходимо использовать различные блокировки для поиска свободных каталогов и объектов inode. При vfs_cache_pressure = 1000 он будет искать в десять раз больше свободных объектов, чем есть.

Внимательней подходите к настройке SWAP так как в будущем будет меньше проблем при обслуживании системы. Не уделяя должного внимания на такой кажущийся пустяк я не раз получал сюрпризы  при работе Linux.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Начнем с того, что процессор может исполнять код и обрабатывать данные только после их помещения в оперативную память (далее просто память), которая организована в виде набора адресуемых сегментов — страниц. Минимальный размер страницы для 32-битного процессора x86 — 4 КБ, современные системы могут работать со страницами большего размера.

На заре развития вычислительной техники памяти было немного и остро стоял вопрос ее эффективного использования, тогда же возникло предложение использовать для хранения страниц не только оперативную память, но и специально размеченное место на дисковых накопителях. Это позволяло при недостатке памяти вытеснить на диск редко используемые страницы и освободить память для работающих приложений. Данный процесс и получил название подкачки. Общий объем физической памяти и пространств подкачки называется виртуальной памятью.

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

Конечно, тормоза многих раздражают, но лучше пусть система время от времени тормозит, нежели глухо виснет только потому, что вы случайно исчерпали всю доступную память. Это самые общие черты, которые знает практически каждый, а вот дальше уже идут тонкости.

Особенности использования памяти в Linux

Управление памятью — сложная тема, поэтому мы будем использовать максимально упрощенную модель, достаточную для понимания происходящих процессов. Начнем с памяти приложений, это просто и понятно — при запуске приложение загружает в память собственный код, код связанных библиотек, обрабатываемые данные. Именно этот объем памяти мы видим, как занятый в простых утилитах, таких как Системный монитор.

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

Почему? Обратимся к устройству файловой системы Linux, которая реализована в виде отдельного уровня абстракции — виртуальной файловой системы (VFS), которая позволяет работать с самыми различными носителями и физическими файловыми системами абсолютно прозрачно для ОС и приложений. Когда программа хочет что то прочитать или записать на диск, то ей абсолютно все равно что это такое: быстрый SSD с ext4 или флешка с FAT32, она обращается к VFS, а именно та уже через драйвер файловой системы осуществляет запись или чтение с нее.

Все ресурсы VFS хранятся в оперативной памяти, а так как дисковые операции достаточно дороги, то VFS активно кеширует данные в той же оперативной памяти, это очень важный момент, так как кеш VFS очень серьезно влияет на производительность системы. Вспомните, как долго осуществляется отображение содержимого папки с большим количеством файлов при первом входе в нее и как быстро происходит повторное открытие.

Фактически за использование оперативной памяти в Linux постоянно конкурируют между собой приложения и кеш VFS, при этом однозначно отдать кому-то предпочтения нельзя, любая крайность будет негативно влиять на производительность.

Если мы возьмем более профессиональные инструменты, то сможем увидеть, что значительный объем «свободной» памяти используется под кеш.

А что будет, если оперативной памяти станет не хватать? Самый простой вариант — сбросить кеш, это можно сделать быстро и без особых затрат. Но это не всегда хороший вариант, да и как быть, если памяти не хватает VFS-кешу? Выгрузить какое-то приложение нельзя, для этого потребуется завершить процесс, что делать? И тут на помощь приходят пространства подкачки, зачем закрывать приложение, если можно выгрузить его страницы на диск, особенно если это приложение в данный момент не активно. Таким образом мы можем выделить нужное количество памяти под VFS-кеш без ущерба для производительности.

Именно этим объясняется использование пространств подкачки при наличии «свободной» оперативной памяти, этот момент приводит в недоумение многих начинающих администраторов. Но если же мы заглянем немного глубже, то увидим, что на самом деле «свободная» память далеко не свободна.

Проведем небольшой эксперимент. На его начало у нас было открыто и свернуто несколько приложений, включая браузер и графический редактор GIMP с загруженным в него 4К изображением. Посмотрим расклад по памяти:

Итак: занято 2,36 ГБ, используется кешем 1,3 ГБ и в подкачке 578 МБ. Теперь распакуем какой-нибудь достаточно большой архив, в нашем случае около 1 ГБ включающий около сотни файлов различных типов и размеров. И снова посмотрим на статистику:

А здесь мы увидим достаточно неожиданную картину: объем занимаемой памяти уменьшился, зато объем выделенный под кеш вырос, так же часть страниц была сброшена в своп. Если взять калькулятор и выполнить грубые прикидки, то увидим, что размер кеша вырос примерно на 400 МБ, часть этой памяти была взята из небольшого количества свободной, а другая часть была освобождена путем вытеснения части страниц в подкачку.

Благодаря этому система быстро выполнила требуемую дисковую операцию, но потом мы испытали некоторую задержку разворачивая GIMP. Но это вполне разумная плата за сохранение общей производительности системы.

Здесь стоит обсудить еще один вопрос: реальную и воспринимаемую производительность. Если нам требуется вытащить приложение, на которое мы переключаемся из подкачки, то это займет некоторое время, что ухудшит воспринимаемую производительность, но на реальную никак не повлияет, будучи загружено обратно в память приложение будет работать также быстро.

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

Это параметр sysctl, задающийся в файле /etc/sysctl.conf и позволяющий установить приоритеты доступа к оперативной памяти. Он может принимать значения от 0 до 200, значение по умолчанию равно 60. Что это означает? При значении равным 100 считается что стоимость подкачки и стоимость дискового ввода-вывода равны и поэтому подкачка будет использоваться всегда, если кешу VFS требуется место в памяти, но точно также кеш будет сбрасываться, если память понадобилась приложениям.

При значениях менее 100 память приложений имеет приоритет, так при значении в 60 получается, что стоимость подкачки на 40% дороже, чем дисковый ввод-вывод и система будет стараться не свопить до определенного предела. Очень грубо этот параметр в диапазоне от 0 до 100 можно рассматривать как минимальный процент свободной оперативки при котором начнет работать подкачка.

При значении в 60 система начнет вытеснять страницы приложений в подкачку после того, как останется свободной менее 60% памяти, при 100 — подкачка будет работать всегда. Если выставить значение в ноль, то это не отключит подкачку, но она не будет использоваться до последнего, в критической ситуации система все-таки начнет сбрасывать страницы на диск, чтобы сохранить приемлемый уровень производительности.

Значения свыше 100 куда более интересны, хотя на первый взгляд практического смысла в них нет. Однако это не так, допустим у вас есть система, которая грузится с быстрого NVMe диска, но основная работа происходит с данными на HDD. Скорость современных жестких дисков доходит до 200 МБ/с, а даже самый простой NVMe свободно дает от 1500 МБ/с. Так может лучше скинуть своп на NVMe, чем вытеснять VFS-кеш?

Именно так, поэтому берем в руки калькулятор и считаем. По грубым прикидкам NVME в 8 раз быстрее. Поэтому:

x + 8x = 200

Вычислить x несложно, его значение будет 22,22, теперь можем узнать 8x — это будет 177, именно это значение мы должны задать в опции swappiness если хотим агрессивно сбрасывать страницы приложений в быстрый своп ради сохранения высокой реальной производительности.

Например, вы работаете с виртуальными машинами VirtualBox расположенными на HDD, поэтому вам более интересно вытеснить в пространство подкачки данные приложений, скажем браузера, чем потерять кеш VFS, который вызовет тормоза в виртуальной машине. При этом NVMe обеспечит быструю скорость извлечения данных, и вы не почувствуете дискомфорта переключившись на браузер.

VFS cache pressure

Это еще одно значение sysctl, оно означает приоритет кеша VFS перед страницами приложений. Значение в 100% обозначает паритет, дисковый кеш и приложения имеют равный вес и вытесняются в зависимости от иных настроек.

Но если мы хотим это изменить, то нужно в /etc/sysctl.conf задать опцию

При увеличении этого числа мы получим более агрессивную политику ядра по отношению освобождения памяти занятой под дисковый кеш. Если мы хотим в 10 раз активнее освобождать кеш VFS, то следует задать значение опции равным 1000, в 100 раз — 10 000. При уменьшении значения ядро, наоборот будет избегать освобождения памяти занятой под кеш. И если установить данную опцию в ноль, то кеш VFS никогда не будет освобождаться, что может спровоцировать опасную ситуацию, когда память в системе действительно закончится.

Мы не рекомендуем изменять данный параметр без четкого понимания что именно вы делаете и зачем.

Создание и использование пространств подкачки

Классическим для Linux является использование раздела подкачки, который выделяется, обычно, в конце диска и особым образом размечается. Для этого используется особый тип файловой системы 82 (область подкачки Linux). Если вы создали раздел подкачки при установке системы, то больше ничего делать не нужно. Если же вы хотите добавить в подкачку еще один раздел, скажем sde5, то выполните одну простую команду:

Затем включите подкачку на этом разделе, перезагрузка системы не потребуется:

Чтобы автоматически подключать раздел подкачки при монтировании добавьте в /etc/fstab строку:

/dev/sde5 swap swap defaults 0 0

Однако современные системы не приветствуют монтирование устройств по их наименованию, потому что в случае изменения конфигурации наименования дисков и разделов на них могут измениться, поэтому более правильным будет использовать для монтирования UUID, прежде всего узнаем его:

lsblk -no UUID /dev/sde5

Затем изменим запись монтирования в fstab следующим образом:

Современные системы все чаще отказываются от отдельного раздела подкачки отдавая предпочтению файлу. Это имеет ряд преимуществ в простоте и гибкости использования — изменить размер файла гораздо легче чем раздела. В остальном никакой разницы между ними нет, файл и раздел подкачки работают одинаково.

Для создания файла можно воспользоваться командой:

fallocate -l 4G /swapfile

Или старым добрым dd:

dd if=/dev/zero of=/swapfile bs=1M count=4096

Читайте также:  Упрощенное администрирование Google Mail: максимальный контроль и безопасность

В обоих случаях мы создадим файл размером 4 ГБ, сразу ограничим права на него:

А дальше точно также:

mkswap /swapfileswapon /swapfile

Для его постоянного монтирования добавьте в /etc/fstab запись:

/swapfile swap swap defaults 0 0

Кстати, при помощи файла можно временно увеличить пространство подкачки, например, для выполнения какой-то ресурсоемкой разовой работы. Просто создайте и подключите еще один файл, а закончив — отключите его:

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

Для этого добавим в опции монтирования еще один параметр — приоритет: минимальный приоритет 0, максимальный 32767. Чем выше приоритет, тем предпочтительнее использование данного пространства, для нескольких пространств с одинаковым приоритетом будет использоваться чередование.

Таким образом вы можете создать пространство подкачки из множества частей и достаточно тонко настроить их использование. Скажем, небольшой файл на NVMе с максимальным приоритетом, файл побольше на обычном SSD и большой файл на HDD, приоритет которого установлен на минимум.

Пространства подкачки и SSD

В настоящий момент SSD не роскошь, а основной тип накопителя для ПК, рабочих станций и серверов и поэтому нужно использовать их возможности на полную. Советы убирать с SSD подкачку, временные файлы и т.д. и т.п. кроме как вредными назвать нельзя. Поэтому размещать подкачку на SSD не только можно, но и нужно. Единственный момент, для разделов подкачки следует включить использование TRIM, для этого в опции монтирования добавьте discard:

Обратите внимание, что данная опция нужна только для разделов подкачки, для файлов она не имеет никакого смысла.

Спящий режим и пространства подкачки

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

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

Использование спящего режима предъявляет особые требования к размеру пространств подкачки, они должны быть способны вместить полный объем оперативной памяти, настройки устройств и собственное содержимое подкачки, если оно используется системой (а как мы видели — оно используется).

Кроме того, при большом объеме оперативной памяти сброс ее на диск при выключении и восстановление при включении может занимать продолжительное время и может оказаться, что быстрее закрыть приложения и нормально выключить компьютер, а по включении просто заново все открыть.

Какой размер файла подкачки выбрать?

Единого мнения на этот счет не существует, но есть определенные наработанные практики, которые позволяют дать рекомендации. Наиболее подробно они приведены в документации Fedora и мы приведем именно их:

Но приведенные значения не догма и могут быть пересмотрены исходя из реальных нагрузок. Так если использовать 4 ГБ подкачки для системы с объемом ОЗУ 2 ГБ выглядит нормально, то выделять 32 ГБ для системы с 64 ГБ ОЗУ выглядит излишеством, поэтому изучите реальный режим работы системы и скорректируйте размер пространства подкачки исходя из реальных запросов. Именно в этой ситуации и становятся удобны файлы подкачки — их размер очень легко менять.

Конечно же это не все возможности, которые предоставляют пространства подкачки в Linux, многое оставлено за кадром просто потому, что объем статьи не позволяет все это вместить. Но приведенные данные являются необходимым минимумом для каждого системного администратора, который выбрал Linux как одну из используемых операционных систем.

В большинстве установок Linux рекомендуется включать раздел SWAP. Это может показаться странным для пользователей Windows, которые привыкли иметь всю свою операционную систему в одном разделе.

Так что же делает SWAP-раздел, нужен ли он вам, и какой он должен быть? Все это важные вопросы, которые при правильных ответах могут серьезно повысить производительность вашей системы.

Переполнение из памяти

Особенности создания и подключения swap-файла в Linux

В простейшем смысле раздел SWAP действует как переполнение вашей (RAM) памяти. Если ваша память заполнена полностью, любые дополнительные приложения будут запускаться из раздела SWAP, а не из памяти.

Это звучит как простой способ увеличить объем используемой памяти без фактического увеличения объема ОЗУ, но это не так. ОЗУ — это идеальное аппаратное обеспечение для памяти, потому что оно чрезвычайно быстрое, в отличие от жестких дисков, которые, говоря условно, очень медленные. Благодаря появлению твердотельных накопителей производительность значительно снизилась благодаря их значительно улучшенным скоростям. , но даже они не могут соответствовать ОЗУ — плюс, вы не захотите вызвать дополнительный износ вашего твердотельного накопителя.

Самой близкой аналогией раздела SWAP будет файл подкачки Windows, хотя между ними есть много технических отличий.

Приоритезация

Раздел SWAP также может помочь перенести некоторые элементы из вашей памяти на жесткий диск, чтобы оставить больше места в памяти для более важных элементов. Это означает, что элементы, к которым редко когда-либо прикасаются, будут перемещены в раздел SWAP.

Порог того, что считается «редким», зависит от «перестановки» (да, это фактический используемый термин), который настраивается. Более высокая перестановка означает, что элементы с большей вероятностью будут перемещены в раздел SWAP; более низкая перестановка означает, что с меньшей вероятностью элементы будут перемещены в раздел SWAP.

Включает спящий режим

Наконец, раздел SWAP используется в качестве места назначения содержимого вашей памяти всякий раз, когда вы сообщаете своей системе о спящем режиме. Это означает, что без раздела SWAP гибернация в Linux невозможна.

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

Вам нужен раздел SWAP?

Особенности создания и подключения swap-файла в Linux

Значит ли это, что необходим раздел SWAP? Система Linux может работать отлично без раздела SWAP. Тем не менее, есть несколько преимуществ и недостатков его наличия.

  • Обеспечивает переполнение пространства, когда ваша память полностью заполняется
  • Может перемещать редко необходимые предметы из вашей высокоскоростной памяти
  • Позволяет вам впасть в спячку
  • Занимает место на жестком диске, поскольку разделы SWAP не изменяют размер динамически
  • Может увеличить износ вашего жесткого диска
  • Не обязательно улучшает производительность (см. Ниже)

Когда разделы SWAP не помогают

SWAP-разделы не всегда помогают улучшить производительность? Позвольте мне объяснить сценарий, в котором наличие раздела SWAP было на самом деле хуже, чем его отсутствие.

Я установил Linux на нетбук, который имел только 1 ГБ памяти и 5400 оборотов в минуту. Имея всего 1 ГБ памяти, вы можете себе представить, что она может быстро заполниться несколькими открытыми вкладками браузера. Раздел SWAP позволил мне сохранить их все открытыми, так как переполнение памяти просто пошло к нему.

Но затем возникло узкое место из-за скорости 5400 об / мин жесткого диска. Поскольку жесткий диск был очень медленным, и система постоянно хотела получить доступ к разделу SWAP, нетбук стал чрезвычайно, крайне вялым до такой степени, что стал практически непригодным для использования, если я не закрыл все, чтобы освободить часть памяти.

Установленная перестановка не гарантировала, что, несмотря на наличие свободного места в памяти, все в разделе SWAP будет перенесено обратно. Вместо этого большая часть этого осталась бы в разделе SWAP, из-за чего нетбук продолжал работать вяло. Это было исправлено только перезагрузкой, которая в любом случае заняла некоторое время, потому что система должна была удалить все из раздела SWAP перед выключением.

Рекомендации

Итак, вот что я бы порекомендовал:

  • Если вы хотите иметь возможность переводить компьютер в спящий режим, у вас должен быть раздел SWAP. Размер этого раздела должен соответствовать размеру установленной памяти, плюс дополнительные 10-25%, чтобы оставить место для любых элементов, которые уже были перенесены в раздел SWAP.
  • Если вам просто нужно небольшое повышение производительности (и у вас есть как минимум 7200 об / мин жесткого диска), тогда вы можете добавить раздел SWAP, если хотите, но он не нужен, если у вас не менее 4 ГБ установленной памяти. Размер этого может быть любым, но вы бы не стали больше, чем вы, если бы создавали раздел SWAP для включения гибернации.
  • Если у вас жесткий диск 5400 об / мин, вам не следует создавать раздел SWAP просто потому, что узкое место ухудшит работу вашего компьютера. Однако, если вы абсолютно хотите иметь SWAP, вы все равно можете создать раздел, используя те же рекомендации по размеру, как описано выше, — но измените значение подкачки на что-то намного меньшее.

Изменение Swappiness

Особенности создания и подключения swap-файла в Linux

Введенное вами значение указывает, когда вы хотите, чтобы Linux начал активно перемещать процессы из памяти в раздел SWAP. Так, например, значение 10 указывает, что процессы будут перемещены, когда использование памяти достигнет 90%; значение перестановки по умолчанию в Ubuntu, равное 60, указывает, что процессы будут перемещены, когда использование памяти достигнет 40%.

Есть много других деталей, которые входят в это, но они только запутали бы вещи.

Разделы SWAP могут существенно повлиять на производительность вашей системы — иногда в лучшую сторону, а иногда и в худшую. Теперь, когда вы хорошо образованы, вы сможете принимать правильные решения.

Ищете другие способы ускорить вашу систему Linux? Ознакомьтесь с этими четырьмя другими быстрыми и простыми советами.

Что вы слышали о разделах SWAP? Как вы думаете, они стоит использовать? Дайте нам знать об этом в комментариях!

Кредиты изображений: Даниэль Рокал

Разрушая мифы о свопности

Обмен — это метод, при котором данные в оперативной памяти (ОЗУ) записываются в специальное место на жестком диске — раздел подкачки или файл подкачки — для освобождения ОЗУ.

В Linux есть параметр, называемый значением swappiness. Существует много путаницы в отношении того, что контролирует этот параметр. Наиболее распространенное неправильное описание подкачки — это то, что оно устанавливает порог для использования ОЗУ, и когда количество используемой ОЗУ достигает этого порога, начинается подкачка.

Это заблуждение, которое повторялось так часто, что теперь оно получило мудрость. Если (почти) все остальные скажут вам, что именно так работает подмена, почему вы должны верить нам, когда мы говорим, что это не так?

Мы собираемся доказать это.

Ваша оперативная память разделена на зоны

Linux не считает вашу оперативную память одним большим однородным пулом памяти. Он считает, что он разделен на ряд различных регионов, называемых зонами. Какие зоны присутствуют на вашем компьютере, зависит от того, является ли он 32-разрядным или 64-разрядным . Вот упрощенное описание возможных зон на компьютере с архитектурой x86 .

  • Прямой доступ к памяти (DMA) : это 16 МБ памяти. Зона получила свое название, потому что давным-давно существовали компьютеры, которые могли только осуществлять прямой доступ к памяти в этой области физической памяти.
  • Прямой доступ к памяти 32 : несмотря на свое название, прямой доступ к памяти 32 (DMA32) является зоной, встречающейся только в 64-битном Linux. Это 4 ГБ памяти. Linux, работающая на 32-битных компьютерах, может использовать DMA только для этого объема ОЗУ (если только они не используют ядро ​​с физическим расширением адреса (PAE)), то есть как зона получила свое имя. Хотя на 32-битных компьютерах он называется HighMem.
  • Нормальный : на 64-битных компьютерах нормальная память — это все ОЗУ объемом более 4 ГБ (примерно). На 32-битных машинах это оперативная память от 16 МБ до 896 МБ.
  • HighMem : это существует только на 32-битных компьютерах Linux. Это все ОЗУ выше 896 МБ, включая ОЗУ более 4 ГБ на достаточно больших машинах.

Значение PAGESIZE

ОЗУ выделяется в страницах, которые имеют фиксированный размер. Этот размер определяется ядром во время загрузки, определяя архитектуру компьютера. Обычно размер страницы на компьютере с Linux составляет 4 Кбайт.

Вы можете увидеть размер своей страницы с помощью команды getconf :

Особенности создания и подключения swap-файла в Linux

Оцените статью
Хостинги