Файл подкачки при установке линукс

Файл подкачки Linux — что это и как с ним работать

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

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

  1. Для сохранения нормальной производительности компьютера в том случае, если запас ОЗУ постепенно заканчивается. Без файла подкачки устройство начнет заметно притормаживать. Это отрицательно скажется на комфорте работы с ПК.
  2. Для оптимального распределения приоритетов (система определит, какой вид памяти будет выделен на те или иные процессы).

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

В отдельно взятых случаях желание пользователя относительно присутствия swap на ПК не учитывается. В некоторых версиях ОС Ubuntu Linux файл подкачки создается по умолчанию, и с этим уже ничего не поделать. Остается лишь принять это, как факт. Многие юзеры не довольны таким решением, поскольку файл подкачки на их компьютерах занимает порядком 1 Гб памяти.

Проверка на наличие файла подкачки в ОС Linux

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

Чтобы посмотреть swap в операционной системе Линукс, необходимо задать определенную команду. Она выглядит следующим образом:

  1. total — всего памяти.
  2. used — сколько используется в данный момент.
  3. free — свободная память, не используется.

К сожалению, данная команда показывает только общую информацию (total, used, free) и не может дать четкого определения тому, что это файл подкачки или смонтированный раздел. Именно поэтому для дополнительноой проверки воспользуемся другой командой — «swapon».

Как видно из скриншота выше, swap находится в разделе /dev/sda5, размером 2,8 gb и это не файл.

Давайте предположим следующий возможный вариант развития сценария: файл подкачки отсутствует на вашем компьютере. Как это выявить? Введите в терминале команду free -h, и ознакомьтесь с полученной информацией. Если в строке «Подкачка» стоят сплошные нули, то swap не создан в операционной системе Linux.

Создание swap Linux

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

Воспользуйтесь терминалом для реализации задуманного.

# fallocate -|1G /swapfile

Примечание: 1 G – величина файла подкачки.

Чтобы защитить swap, необходимо установить на этот файл нужные права. Сделайте это при помощи:

# chmod 600 /swapfile

Примечание: в конце этой строки стоит название swap файла. Наименование выбирается на свое усмотрение. Его можно поменять.

Права 600 означает — владелец может читать/писать, остальным все запрещено.

  1. Как создать файловую систему

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

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

Как посмотреть, произошло ли распознание файла подкачки? Задайте в строке следующую команду:

При правильном следовании инструкции вы увидите тип файла и его величину в соответствующих полях.

  1. Как сохранить настройки

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

# cp /etc/fstab /etc/fstab.back

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

$ echo ’/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab

Дело сделано. Теперь можно смело перезапускать устройство. Сохраненные данные останутся на месте.

Как настроить Swapiness

ОС Linux может использовать swap с разной частотой. Частота использования может варьироваться от 0 до 100. Она задается в параметрах swap.

Значение, приближенное к «0» означает, что система начнет обращаться к файлу подкачки только в самых экстренных случаях (как страховочный вариант). Значение, приближенное к «100» означает, что система начнет освобождать физическую память, перемещая объекты в раздел подкачки.

Команда для проверки установленного параметра в устройстве:

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

В приведенном примере «25» – новое значение. Вы можете выбрать число по собственному усмотрению. Главное, чтобы значение попадало в диапазон от 0 до 100. После внесения изменений нужно еще раз позаботиться о том, чтобы они не обнулились после перезапуска системы. Введите в строке терминала запрос:

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

vm.swapiness=25 (или любое другое значение, которое вас устроит).

Размер файла подкачки в ОС Линукс

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

При отключении swap операционная система компьютера начинает использовать только ОЗУ. Если объем оперативной памяти закончится, устройство может зависнуть. Все рабочие процессы ПК остановятся.

Чтобы избежать подобных неприятностей, нужно создать запасной (временный) файл подкачки перед тем, как удалять или изменять swap. Обязательны ли эти действия к выполнению? Здесь нужно смотреть по ситуации. Если ОЗУ устройства достаточно велика, можно вполне обойтись и без создания второго swap файла. В этом нет ничего рискованного.

Читайте также:  Как установить windows usb dvd download tool

Теперь приступаем к следующему этапу настройки – корректировке величины файла. Чтобы все прошло безопасно, swap нужно отключить. Введите в строке запрос:

Чтобы изменить величину swap, введите в строке:

# fallocate -| 2G /swapfile

Вместо «2G» укажите подходящую для вас величину файла подкачки. Для его форматирования воспользуйтесь этой командой:

И последнее действие – включение файла подкачки. Попробуйте включить его при помощи:

Интересная информация: пользователь может создавать и использовать несколько swap файлов на устройстве с ОС Linux.

Удаление swap в операционной системе Линукс

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

Теперь можно спокойно приступать к удалению при помощи команды «rm».

Важное напоминание: при создании нового файла подкачки в ОС Линукс придется снова установить права на swap.

Итоги

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

Источник

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

Swap — это пространство на диске, которое используется, когда объем физической памяти RAM заполнен. Когда в системе Linux заканчивается ОЗУ, неактивные страницы перемещаются из ОЗУ в область подкачки.

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

Это руководство было протестировано в системах Linux с Ubuntu 18.04 и CentOS 7, но оно должно работать с любым другим дистрибутивом Linux.

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

Выполните следующие действия, чтобы добавить 1 ГБ свопа на свой сервер. Если вы хотите добавить 2 ГБ вместо 1 Гб, заменить 1G с 2G .

Создайте файл, который будет использоваться для свопа:

Если faillocate не установлен или вы получили сообщение об ошибке, в котором fallocate failed: Operation not supported что fallocate failed: Operation not supported вы можете использовать следующую команду для создания файла подкачки:

Только пользователь root должен иметь возможность писать и читать файл подкачки. Чтобы установить правильный тип разрешений :

Используйте утилиту mkswap чтобы настроить файл как область подкачки Linux:

Включите свопинг с помощью следующей команды:

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

Чтобы убедиться, что своп активен, используйте либо команду swapon либо free как показано ниже:

Как настроить значение подкачки

Swappiness — это свойство ядра Linux, которое определяет, как часто система будет использовать пространство подкачки. Подкачка может иметь значение от 0 до 100. Низкое значение заставит ядро по возможности избегать подкачки, в то время как более высокое значение заставит ядро более агрессивно использовать пространство подкачки.

Значение swappiness по умолчанию — 60. Вы можете проверить текущее значение swappiness, введя следующую команду:

Хотя значение подкачки 60 подходит для большинства систем Linux, для производственных серверов вам может потребоваться установить более низкое значение.

Например, чтобы установить значение swappiness равным 10, вы должны выполнить следующую команду sysctl :

Чтобы сделать этот параметр постоянным при перезагрузке, добавьте следующую строку в /etc/sysctl.conf :

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

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

Если по какой-либо причине вы хотите деактивировать и удалить файл подкачки, выполните следующие действия:

Сначала деактивируйте своп, набрав:

Удалите запись файла подкачки /swapfile swap swap defaults 0 0 из файла /etc/fstab .

Наконец, удалите фактический файл подкачки с помощью команды rm :

Выводы

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

Если вы столкнулись с проблемой или хотите оставить отзыв, оставьте комментарий ниже.

Источник

В защиту swap’а [в Linux]: распространенные заблуждения

Прим. перев.: Эта увлекательная статья, в подробностях раскрывающая предназначение swap в Linux и отвечающая на распространённое заблуждение на этот счёт, написана Chris Down — SRE из Facebook, который, в частности, занимается разработкой новых метрик в ядре, помогающих анализировать нагрузку на оперативную память. И начинает он своё повествование с лаконичного TL;DR…

Предисловие

Работая над улучшением и использованием cgroup v2, я успел поговорить со многими инженерами об их отношении к управлению памяти, особенно о поведении приложения под нагрузкой и об эвристическом алгоритме операционной системы, используемым «под капотом» для управления памятью.

Повторяющейся темой этих обсуждений стал swap. Тема swap активно оспаривается и плохо понимается даже теми, кто проработал с Linux долгие годы. Многие воспринимают его как нечто бесполезное или очень вредное — мол, это пережиток прошлого, когда памяти было мало и диски являлись необходимым злом, предоставляющим столь нужное пространство для подкачки. И до сих пор, все последние годы, я достаточно часто наблюдаю споры вокруг этого утверждения: немало дискуссий провёл и я сам с коллегами, друзьями, собратьями по индустрии, помогая им понять, почему swap — это по-прежнему полезная концепция на современных компьютерах, имеющих гораздо больше физической памяти, чем в былые времена.

Широкое недопонимание существует и насчёт предназначения swap’а: многие люди видят в нём лишь «медленную дополнительную память» для использования в критических ситуациях, но не понимают его вклад в адекватное функционирование операционной системы в целом при нормальной нагрузке.

Многие из нас слышали такие распространённые фразы о памяти: «Linux использует слишком много памяти», «swap должен быть вдвое больше размера физической памяти» и т.п. Эти заблуждения легко развеять и их обсуждения стали более точными в последние годы, однако миф о «бесполезном» swap гораздо больше завязан на эвристику и таинство, которые не поддаются объяснению с простой аналогией, — для его обсуждения требуется более глубокое понимание управления памятью.

Эта публикация в основном нацелена на тех, кто администрирует Linux-системы и заинтересован в том, чтобы услышать аргументы против отсутствия/слишком малого объёма swap или работы с vm.swappiness , выставленным в 0.

Введение

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

Типы памяти

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

Читайте также:  Код для microsoft store windows 10

Например, есть страницы («блоки» памяти, обычно по 4k), ответственные за хранение кода для каждого процесса, запущенного на компьютере. Есть также страницы, ответственные за кэширование данных и метаданных, относящихся к файлам, к которым обращаются эти программы для ускорения своих обращений в будущем. Они являются частью страничного кэша [page cache], и далее я буду на них ссылаться как на файловую [file] память.

Есть также страницы, которые отвечают за распределение памяти, сделанное внутри этого кода, например, когда с malloc выделяется новая память для записи в неё или когда используется флаг MAP_ANONYMOUS в mmap . Это «анонимные» страницы — они так называются, потому что ничем не «поддерживаются», — и я буду ссылаться на них как на анонимную [anon] память.

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

Память с высвобождением и без

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

Для некоторых типов страниц это сделать весьма просто. Например, в случае чистой [clean], т.е. немодифицированной, памяти страничного кэша мы просто кэшируем для лучшей производительности то, что уже есть на диске, поэтому можем сбросить страницу без необходимости в каких-либо специальных операциях.

Для некоторых типов страниц это возможно, но непросто. Например, в случае грязной [dirty], т.е. модифицированной, памяти страничного кэша мы не можем просто сбросить страницу, потому что на диске ещё нет произведённых модификаций. Поэтому необходимо или отказаться от высвобождения [reclamation], или перенести наши изменения обратно на диск перед тем, как сбрасывать эту память.

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

О природе swap’а

Если поискать объяснения, зачем нужен swap в Linux, неизбежно находятся многочисленные обсуждения его предназначения просто как расширения физической RAM для критических случаев. Вот, например, случайный пост, который я вытащил из первых результатов в Google по запросу «what is swap»:

«По своей сути swap — это экстренная память; запасное пространство для случаев, когда система на какое-то время нуждается в большем количестве физической памяти, чем доступно в RAM. Она считается «плохой» в том смысле, что медленная и неэффективная, и если системе постоянно требуется использовать swap, очевидно, ей не хватает памяти. [..] Если у вас достаточно RAM для удовлетворения всех потребностей и вы не ожидаете её превышения, вы можете прекрасно работать и без swap-пространства».

Поясню, что я вовсе не обвиняю автора этого комментария за содержимое его поста — это «общеизвестный факт», признаваемый многими системными администраторами Linux и являющийся, пожалуй, одним из наиболее вероятных ответов на вопрос о swap’е. К сожалению, это вдобавок и неправильное представление о предназначении и использовании swap’а, особенно на современных системах.

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

Вот именно для этого и существует swap. Swap — область хранения для этих, кажущихся «невысвобождаемыми» [unreclaimable], страниц, позволяющая отправлять их на устройство хранения по запросу. Это означает, что их можно начинать считать такими же доступными для высвобождения, как и их более простые в этом смысле друзья (вроде чистых файловых страниц), что позволяет эффективнее использовать свободную физическую память.

Swap — это преимущественно механизм для равного высвобождения, а не для срочной «дополнительной памяти». Не swap замедляет работу вашего приложения — замедление происходит из-за начала совокупной конкуренции за память.

Итак, в каких же ситуациях это «равное высвобождение» будет оправданно выбирать высвобождение анонимных страниц? Вот абстрактные примеры некоторых не самых редких сценариев:

  1. Во время инициализации долго выполняющаяся программа может выделить и использовать многие страницы. Эти же страницы могут использоваться в процессе завершения работы/очистки, но не требуются после «старта» (в понимании самого приложения) программы. Довольно распространённое явление для демонов, использующих крупные зависимости для инициализации.
  2. Во время нормальной работы программы мы можем выделить память, которая затем редко используется. Для общей же производительности системы может оказаться более разумным использовать память для чего-то более важного, чем выполнять значительный отказ страницы с выгрузкой данных этой страницы на диск.

Что происходит с использованием swap и без него

Давайте посмотрим на типовые ситуации и к чему они приводят при наличии и отсутствии swap. О метриках «конкуренции за память» я рассказываю в докладе про cgroup v2.

Без конкуренции или с малой конкуренцией за память

С умеренной или высокой конкуренцией за память

При временных всплесках в потреблении памяти

Окей, я хочу системный swap, но как его настроить для конкретных приложений?

Вы же не думали, что в этой статье не будет упоминаний использования cgroup v2?

Очевидно, что общему эвристическому алгоритму тяжело не ошибаться всё время, поэтому важно иметь возможность дать необходимые инструкции ядру. Исторически единственной настройкой, которую можно было применить на системном уровне, являлась vm.swappiness . У неё две проблемы: vm.swappiness крайне сложно разумно применять, потому что она является лишь маленькой частью гораздо большей эвристической системы, и она применима лишь ко всей системе, но не к ограниченному набору процессов.

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

В cgroup v2 есть определяемая на каждую cgroup настройка memory.low , которая позволяет сказать ядру отдавать предпочтение другим приложениям для высвобождения до достижения определённого порога используемой памяти. Нет гарантий, что ядро предотвратит swapping частей приложения, однако оно будет предпочитать высвобождение для других приложений в случае конкуренции за память. В нормальных условиях логика swap’а в ядре в целом достаточно хороша, так что разрешение оппортунистически выносить в swap страницы в общем случае повышает системную производительность. Пробуксовка swap’а в условиях сильной конкуренции за память не идеальна, но это скорее просто особенность ситуации нехватки памяти, чем проблема swapper’а. В ситуациях, когда давление на память начинает расти, вы обычно хотите быстрого завершения работы некритических процессов посредством их «самоубийства».

Читайте также:  Как узнать что windows 10 лицензия

И в этом вопросе нельзя просто положиться на OOM killer. Потому что OOM killer вызывается только в самых критичных ситуациях, когда система уже оказалась в значительно нездоровом состоянии и, возможно, находилась в нём некоторое время. Необходимо самостоятельно и оппортунистически разрешить ситуацию ещё до того, как задумываться об OOM killer’е.

Тем не менее, выявить давление на память достаточно трудно с помощью традиционных счётчиков памяти в Linux. Нам доступно нечто, что каким-то образом относится к проблеме, однако скорее по касательной: потребление памяти, количество операций сканирования страниц и т.п. — и по одним этим метрикам очень трудно отличить эффективную конфигурацию памяти от той, что приводит к конкуренции за память. У нас есть группа в Facebook, возглавляемая Johannes’ом и работающая над новыми метриками, упрощающими демонстрацию давления на память, — это должно помочь нам в будущем. Больше информации об этом можно получить из моего доклада про cgroup v2, где я начинаю подробнее рассказывать об одной из метрик.

Тюнинг

Сколько же swap’а мне тогда нужно?

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

Если у вас достаточно дискового пространства и свежее (4.0+) ядро, большее количество swap’а почти всегда лучше, чем меньшее. В более старых ядрах kswapd — один из процессов ядра, что отвечает за управление swap’ом, — исторически слишком усердствовал в перемещении памяти в swap, делая это тем активнее, чем больше swap’а было доступно. В последнее время поведение swapping’а при наличии большого swap-пространства значительно улучшили. Так что, если вы работаете с ядром 4.0+, большой swap не приведёт к чрезмерному swapping’у. В общем, на современных ядрах нормально иметь swap размером в несколько гигабайт, если такое пространство у вас есть.

Если же дисковое пространство ограничено, ответ в действительности зависит от компромисса, на который вы готовы пойти, и особенностей окружения. В идеале у вас должно быть достаточно swap’а, чтобы система оптимально функционировала при нормальной и пиковой (по памяти) нагрузке. Рекомендую настроить несколько тестовых систем с 2-3 Гб swap’а или более и понаблюдать, что происходит на протяжении недели или около того в разных условиях нагрузки (на память). Если на протяжении этой недели не случалось ситуаций резкой нехватки памяти, что означает недостаточную пользу такого теста, всё закончится занятостью swap’а небольшим количеством мегабайт. В таком случае, пожалуй, разумно будет иметь swap хотя бы такого размера с добавлением небольшого буфера для меняющихся нагрузок. Также atop в режиме логирования в столбце SWAPSZ может показать, страницы каких приложений попадают в swap. Если вы ещё не используете эту утилиту на своих серверах для логирования истории состояний сервера — возможно, в эксперимент стоит добавить её настройку на тестовых машинах (в режиме логирования). Заодно вы узнаете, когда приложение начало перемещать страницы в swap, что можно привязать к событиям из логов или другим важным показателям.

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

Для пользователей ноутбуков/десктопов, желающих использовать swap для перехода в спящий режим [hibernate], этот факт также необходимо учитывать, поскольку swap-файл тогда должен как минимум соответствовать размеру физической оперативной памяти.

Какой должна быть настройка swappiness?

Во-первых, важно понимать, что делает vm.swappiness . Это системная настройка (sysctl), смещающая высвобождение памяти в сторону анонимных страниц или файловых страниц. Для реализации используются два разных атрибута: file_prio (стремление высвобождать файловые страницы) и anon_prio (стремление высвобождать анонимные страницы). vm.swappiness обыгрывает эти атрибуты, становясь значением по умолчанию для anon_prio и вычитаясь из стандартного значения 200 в file_prio , то есть vm.swappiness = 50 равносильно значению anon_prio в 50 и file_prio в 150 (точные числа не играют роли — важен их вес относительно друг друга).

Это означает, что vm.swappiness — это по существу просто соотношение дорогой анонимной памяти, которую можно высвобождать и приводить к отказам, в сравнении с файловой памятью для вашего железа и рабочей нагрузки. Чем ниже значение, тем активнее вы сообщаете ядру, что редкие обращения к анонимным страницам дороги для перемещения в swap и обратно на вашем оборудовании. Чем выше это значение, тем вы больше говорите ядру, что стоимость swapping’а анонимных и файловых страниц одинакова на вашем оборудовании. Подсистема управления памятью будет по-прежнему пытаться решить, помещать в swap файловые или анонимные страницы, руководствуясь тем, насколько «горяча» память, однако swappiness склоняет подсчёт стоимости в пользу большего swapping’а или большего пропуска кэшей файловой системы, когда доступны оба способа. На SSD-дисках эти подходы практически равны по стоимости, поэтому установка vm.swappiness = 100 (т.е. полное равенство) может работать хорошо. На вращающихся дисках swapping может быть значительно дороже, т.к. в целом он требует случайного чтения, поэтому вы скорее всего захотите сместиться в сторону меньшего значения.

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

Источник

Оцените статью