Debian меняет размер подкачки

Обновлено: 04.07.2024

Пространство подкачки в Debian и других операционных системах на основе GNU/Linux — это форма виртуальной памяти. Проще говоря, это означает, что если в системе заканчивается физическая память (ОЗУ), то она перенесет в это пространство некоторые менее используемые данные из ОЗУ. Пространство подкачки также имеет основополагающее значение для процессов функций «Приостановка» и «Гибернация» Linux. Подкачка в первую очередь настраивается как отдельный выделенный раздел (разделы) (рекомендуется) или как специально созданный файл (файлы), находящиеся в существующей файловой системе.

Начиная с ядра Linux 2.4, ядро ​​Linux может обрабатывать до 32 отдельных разделов подкачки и/или файлов подкачки в любой момент времени. Однако это очень редко, поскольку жесткие диски намного медленнее оперативной памяти. Большинство систем будут иметь только раздел подкачки или один раздел подкачки на каждый экземпляр Linux. Чаще всего подкачку настраивают в процессе установки Debian, но ее можно создать или изменить в любое время.

Информация и соображения, связанные с размером используемого свопа

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

На что следует обратить внимание при принятии решения о настройке пространства подкачки на вашем компьютере

  1. Собираетесь ли вы использовать функции гибернации и приостановки? Если вы собираетесь использовать любой из них, вам необходимо убедиться, что доступное пространство подкачки достаточно велико, чтобы хранить всю информацию, которую ваша работающая система будет иметь в оперативной памяти. Если вы собираетесь использовать Hibernate, вы должны убедиться, что ваша установка Debian имеет доступ к разделу подкачки или файлу, который НЕ используется совместно с другим экземпляром GNU/Linux.
  2. Сколько памяти у вашей машины? Если ваша машина имеет большой объем доступной оперативной памяти и вам не нужны режимы гибернации или приостановки, то будет безопаснее иметь меньше подкачки, доступной для системы. Если на вашей машине очень мало доступной оперативной памяти, как в случае со старыми машинами и нетбуками, вы должны обеспечить достаточно большое пространство подкачки. В этом случае удвоение системной памяти было бы хорошим предложением.
  3. Сколько памяти будут занимать приложения, которые вы собираетесь запускать? Использование памяти в системе Debian GNU/Linux будет сильно различаться в зависимости от приложений, которые вы решите запускать. Например, запуск более легкой среды рабочего стола, такой как Openbox или Xfce, и связанных с ними приложений будет использовать меньше памяти, чем GNOME или KDE.
  4. Сколько свободного места у вас на жестком диске? При использовании небольшого твердотельного диска или USB-накопителя для установки Debian это место на жестком диске может быть ценным. В таких случаях может иметь смысл установить больше системной памяти, если это необходимо, чем использовать большое пространство подкачки. Это также ускоряет работу системы, поскольку скорость чтения/записи жестких дисков намного ниже, чем скорость оперативной памяти.

В конце концов, если на вашем компьютере закончится как ОЗУ, так и пространство подкачки, система выйдет из строя. Это привело к упрощенному, но безопасному решению использовать область подкачки, которая «удваивает объем системной памяти».

Создание и изменение swap на существующем компьютере

Разделы подкачки можно создавать и изменять с помощью графических инструментов, таких как GParted, или инструментов командной строки, таких как parted или gnu-fdisk. Создание файлов подкачки выполняется командой dd(1). Чтобы создать файл подкачки с помощью dd:

PATH – это точный путь к каталогу, в который вы хотите поместить файл подкачки, FILENAME – имя, которое вы хотите присвоить файлу подкачки, а SIZE – размер файла подкачки в килобайтах (например, 1048576 – это 1 гигабайт). ). Команда chmod должна убедиться, что файл не доступен для чтения всем по соображениям безопасности.

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

Откройте файл /etc/fstab в предпочитаемом текстовом редакторе и с привилегиями root.

При добавлении записи для раздела подкачки

При добавлении записи для файла подкачки

Известные проблемы и их устранение

Вы можете убедиться, что конкретный раздел или файл подкачки активен и работает в любой системе на базе GNU/Linux, попробовав включить его. Это делается с помощью команды swapon(8) с привилегиями суперпользователя, например, swapon /dev/sda5, где sda5 — фактическое имя раздела подкачки на вашем компьютере. Вы можете просмотреть имена всех разделов на вашем компьютере с помощью команды cat /proc/partitions. Или, чтобы убедиться, что файл подкачки активен, запустите swapon /PATH/FILENAME. Если это конкретное пространство подкачки активно, вы получите вывод, аналогичный приведенному ниже.

Если вы не получили этот вывод, проверьте содержимое /etc/fstab на наличие ошибок. Для файлов подкачки убедитесь, что запись /PATH/FILENAME верна. При использовании раздела подкачки найдите UUID раздела подкачки с помощью команды blkid(8). Просто запустите blkid с привилегиями суперпользователя и сравните его UUID с тем, что находится в /etc/fstab. Если есть несоответствие, замените UUID в /etc/fstab на один вывод blkid.

На момент написания этой статьи с установщиком Debian на текущих стабильных образах (версия 6.0.1) ручное разбиение по умолчанию будет форматировать все найденные разделы подкачки на всех дисках. Это приведет к аннулированию любой записи UUID в файлах /etc/fstab любой другой установленной системы на основе GNU/Linux, использующей эти области подкачки.

Чтобы установщик не форматировал раздел подкачки, он должен быть вручную помечен как "Не использовать" во время разбивки. Установщик отформатирует любой раздел подкачки, не помеченный как «Не использовать», и будет использовать его в качестве пространства подкачки в установленной системе. Если вы делите пространство подкачки с другим экземпляром GNU/Linux, вам нужно будет вручную обновить их файлы /etc/fstab. Для этого просто запустите blkid с привилегиями суперпользователя и поместите UUID, который он выводит для раздела подкачки, вместо старого UUID в файлах /etc/fstab другого экземпляра Linux.

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

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

Если вам нужно повысить производительность сервера в DigitalOcean, рекомендуем обновить Droplet. Это приведет к лучшим результатам в целом и снизит вероятность возникновения проблем с оборудованием, которые могут повлиять на вашу службу.

Что такое обмен?

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

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

Шаг 1. Проверка системы на наличие информации о свопе

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

Мы можем увидеть, есть ли в системе какой-либо настроенный своп, набрав:

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

Убедиться в отсутствии активного свопа можно с помощью бесплатной утилиты:

Как видно из строки вывода Swap, в системе не активен обмен.

Шаг 2. Проверка свободного места на разделе жесткого диска

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

Устройство с / в столбце Установлено в данном случае является нашим диском. В этом примере у нас достаточно свободного места (используется только 1,4 ГБ). Ваше использование, вероятно, будет другим.

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

Шаг 3. Создание файла подкачки

Теперь, когда мы знаем доступное место на жестком диске, мы можем создать файл подкачки в нашей файловой системе. Мы выделим файл нужного нам размера подкачки под названием swapfile в нашем корневом (/) каталоге.

Лучший способ создать файл подкачки — использовать программу fallocate. Эта команда мгновенно создает файл указанного размера.

Поскольку сервер в нашем примере имеет 1 ГБ ОЗУ, в этом руководстве мы создадим файл размером 1 ГБ.Настройте это в соответствии с потребностями вашего собственного сервера:

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

Наш файл был создан с правильным объемом отведенного места.

Шаг 4. Включение файла подкачки

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

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

Сделайте файл доступным только для root, введя:

Подтвердите изменение разрешений, введя:

Как видите, флаги чтения и записи включены только для пользователя root.

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

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

Убедитесь, что своп доступен, введя:

Мы можем еще раз проверить вывод бесплатной утилиты, чтобы подтвердить наши выводы:

Наша подкачка успешно настроена, и наша операционная система начнет использовать ее по мере необходимости.

Шаг 5. Сделайте файл подкачки постоянным

Наши последние изменения активировали файл подкачки для текущего сеанса. Однако, если мы перезагрузимся, сервер не сохранит настройки подкачки автоматически. Мы можем изменить это, добавив файл подкачки в наш файл /etc/fstab.

Создайте резервную копию файла /etc/fstab на случай, если что-то пойдет не так:

Добавьте информацию о файле подкачки в конец файла /etc/fstab, введя:

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

Шаг 6. Настройка параметров обмена

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

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

Параметр подкачки настраивает, как часто ваша система выгружает данные из ОЗУ в пространство подкачки. Это значение от 0 до 100, представляющее процент.

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

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

Мы можем увидеть текущее значение swappiness, набрав:

Для рабочего стола параметр swappiness, равный 60, не является плохим значением. Для сервера вы можете приблизить его к 0.

Мы можем установить для swappiness другое значение с помощью команды sysctl.

Например, чтобы установить значение swappiness равным 10, можно ввести:

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

Внизу вы можете добавить:

Сохраните и закройте файл, когда закончите.

Настройка параметра давления в кэше

Еще одно связанное значение, которое вы, возможно, захотите изменить, — это vfs_cache_pressure. Этот параметр определяет, насколько система будет кэшировать информацию inode и dentry по сравнению с другими данными.

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

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

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

Внизу добавьте строку, указывающую новое значение:

Сохраните и закройте файл, когда закончите.

Заключение

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

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

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

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

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

Это руководство проведет вас через этапы добавления файла подкачки в Debian 10 Buster.

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

Если вывод пуст, это означает, что в системе нет места подкачки.

В противном случае, если вы получите что-то подобное ниже, значит, в вашей системе Debian уже включен своп.

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

В этом примере мы создадим и активируем 1 ГБ подкачки. Чтобы увеличить объем подкачки, замените 1 ГБ на нужный размер области подкачки.

Следующие шаги показывают, как добавить пространство подкачки в Debian 10.

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

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

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

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

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

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

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

Проверьте, активен ли обмен, используя команду swapon или free, как показано ниже:

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

Значение подкачки по умолчанию равно 60. Текущее значение подкачки можно проверить с помощью команды cat:

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

Например, чтобы установить значение swappiness равным 10, введите:

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

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

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

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

Откройте файл /etc/fstab в текстовом редакторе и удалите запись файла подкачки /swapfile swap swap defaults 0 0 .

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

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


Рахул, 11 сентября 2021 г., 3 минуты чтения

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

Это руководство поможет вам добавить Swap в систему Debian 11 Bullseye Linux.

Как создать своп в Debian 11

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

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

Моя система Debian имеет 2 ГБ оперативной памяти. Поэтому мы создадим файл подкачки размером 4 ГБ.

Сделать обмен постоянным

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

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

и добавьте следующую запись в конец файла:

Добавить подкачку в фатаб

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

Настроить подкачку

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

Редактировать файл /etc/sysctl.conf:

добавить следующую конфигурацию в конец файла

Теперь перезагрузите файл конфигурации sysctl

Заключение

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

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

символ цикла со стрелками для более быстрого отказа

В типичном компьютере есть два основных типа памяти. Первый тип, оперативная память (ОЗУ), используется для хранения данных и программ, пока они активно используются компьютером. Программы и данные не могут использоваться компьютером, если они не хранятся в оперативной памяти. ОЗУ — энергозависимая память; то есть данные, хранящиеся в оперативной памяти, теряются при выключении компьютера.

Жесткие диски – это магнитные носители, используемые для долговременного хранения данных и программ. Магнитный носитель энергонезависим; данные, хранящиеся на диске, сохраняются даже при отключении питания от компьютера. ЦП (центральный процессор) не может напрямую обращаться к программам и данным на жестком диске; сначала он должен быть скопирован в ОЗУ, и именно здесь ЦП может получить доступ к своим инструкциям по программированию и данным, с которыми будут работать эти инструкции. В процессе загрузки компьютер копирует определенные программы операционной системы, такие как ядро ​​и init или systemd, а также данные с жесткого диска в оперативную память, где к ним непосредственно обращается процессор компьютера, ЦП.

Второй тип памяти в современных системах Linux — это пространство подкачки.

Поменять местами

Дополнительные ресурсы по Linux

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

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

Ядро использует программу управления памятью, которая обнаруживает блоки памяти, также известные как страницы, содержимое которых в последнее время не использовалось. Программа управления памятью выгружает достаточное количество этих относительно редко используемых страниц памяти в специальный раздел на жестком диске, специально предназначенный для «подкачки» или подкачки. Это освобождает оперативную память и освобождает место для ввода дополнительных данных в электронную таблицу. Те страницы памяти, которые выгружаются на жесткий диск, отслеживаются кодом управления памятью ядра и при необходимости могут быть выгружены обратно в ОЗУ.

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

Типы подкачки Linux

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

Файл подкачки можно использовать, если на диске нет свободного места для создания нового раздела подкачки или пространства в группе томов, где можно создать логический том для пространства подкачки. Это просто обычный файл, который создается и предварительно распределяется по заданному размеру. Затем запускается команда mkswap, чтобы настроить его как пространство подкачки. Я не рекомендую использовать файл для области подкачки без крайней необходимости.

Пробивка

Перегрузка может произойти, когда общая виртуальная память, как ОЗУ, так и пространство подкачки, становится почти заполненной. Система тратит так много времени на подкачку блоков памяти между пространством подкачки и оперативной памятью и обратно, что на реальную работу остается мало времени. Типичные симптомы этого очевидны: система становится медленной или полностью перестает отвечать на запросы, а индикатор активности жесткого диска горит почти постоянно.

Если вам удастся ввести такую ​​команду, как free, которая показывает загрузку ЦП и использование памяти, вы увидите, что загрузка ЦП очень высока, возможно, в 30–40 раз больше, чем количество ядер ЦП в системе. Еще одним признаком является то, что и ОЗУ, и пространство подкачки почти полностью выделены.

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

Каков правильный объем пространства подкачки?

Много лет назад эмпирическое правило для объема пространства подкачки, которое должно быть выделено на жестком диске, равнялось удвоенному объему оперативной памяти, установленной на компьютере (разумеется, тогда оперативная память большинства компьютеров измерялась в КБ). или МБ). Таким образом, если бы компьютер имел 64 КБ ОЗУ, раздел подкачки размером 128 КБ был бы оптимальным размером. Это правило учитывало тот факт, что в то время размеры ОЗУ обычно были довольно малы и что выделение более чем двукратного объема ОЗУ для пространства подкачки не улучшало производительность. Имея более чем вдвое больше оперативной памяти для подкачки, большинство систем тратили больше времени на перегрузку, чем на выполнение полезной работы.

Оперативная память стала недорогим товаром, и сегодня большинство компьютеров имеют объем оперативной памяти, исчисляемый десятками гигабайт. Большинство моих новых компьютеров имеют не менее 8 ГБ ОЗУ, один — 32 ГБ, а моя основная рабочая станция — 64 ГБ. Мои старые компьютеры имеют от 4 до 8 ГБ оперативной памяти.

При работе с компьютерами с огромным объемом оперативной памяти ограничивающий фактор производительности для пространства подкачки намного ниже множителя 2X. Онлайн-руководство по установке Fedora 28, которое можно найти в Интернете по адресу Руководство по установке Fedora, определяет современные представления о распределении пространства подкачки. Я включил ниже некоторые обсуждения и таблицу рекомендаций из этого документа.

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

Таблица 1: Рекомендуемое системное пространство подкачки в документации Fedora

Объем оперативной памяти

Рекомендуемый объем подкачки

Рекомендуемый обмен с переходом в спящий режим

в 2 раза больше оперативной памяти

в 3 раза больше оперативной памяти

Равно объему оперативной памяти

в 2 раза больше оперативной памяти

в 0,5 раза больше оперативной памяти

в 1,5 раза больше оперативной памяти

более 64 ГБ

спящий режим не рекомендуется

На границе каждого из перечисленных выше диапазонов (например, система с 2 ГБ, 8 ГБ или 64 ГБ системной оперативной памяти) по своему усмотрению выбирайте пространство подкачки и поддержку гибернации. Если ресурсы вашей системы позволяют, увеличение пространства подкачки может повысить производительность.

Конечно, у большинства администраторов Linux есть собственное представление о соответствующем объеме пространства подкачки, как и почти обо всем остальном. Таблица 2 ниже содержит мои рекомендации, основанные на моем личном опыте работы в различных средах. Они могут вам не подойти, но, как и в случае с таблицей 1, они могут помочь вам начать работу.

Таблица 2: Рекомендуемое системное пространство подкачки по авторам

Рекомендуемый объем подкачки

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

Добавление пространства подкачки в дисковую среду, отличную от LVM

Из-за изменения требований к пространству подкачки на хостах с уже установленным Linux может возникнуть необходимость изменить объем пространства подкачки, определенный для системы. Эту процедуру можно использовать для любого общего случая, когда необходимо увеличить объем пространства подкачки. Предполагается, что имеется достаточно свободного места на диске. Эта процедура также предполагает, что диски разбиты на «сырые» разделы EXT4 и разделы подкачки и не используют управление логическими томами (LVM).

Основные шаги просты:

Отключите существующее пространство подкачки.

Создайте новый раздел подкачки нужного размера.

Перечитайте таблицу разделов.

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

Добавьте новый раздел /etc/fstab.

Перезагрузка не требуется.

В целях безопасности, прежде чем отключать подкачку, как минимум убедитесь, что никакие приложения не запущены и пространство подкачки не используется. Команды free или top могут сообщить вам, используется ли пространство подкачки. Чтобы быть еще безопаснее, вы можете вернуться к уровню запуска 1 или однопользовательскому режиму.

Отключите раздел подкачки с помощью команды, отключающей все пространство подкачки:

Теперь отобразите существующие разделы на жестком диске.

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

Запустите fdisk в интерактивном режиме командой:

На данный момент fdisk является интерактивным и работает только с указанным диском.

Используйте подкоманду fdisk p, чтобы убедиться, что на диске достаточно свободного места для создания нового раздела подкачки. Пространство на жестком диске показано в виде блоков по 512 байт и начального и конечного номеров цилиндров, поэтому вам, возможно, придется выполнить некоторые математические расчеты, чтобы определить доступное пространство между и в конце выделенных разделов.

Используйте подкоманду n, чтобы создать новый раздел подкачки. fdisk спросит у вас начальный цилиндр. По умолчанию он выбирает цилиндр с наименьшим доступным номером. Если вы хотите изменить это, введите номер пускового цилиндра.

Команда fdisk теперь позволяет вводить размер разделов в нескольких форматах, включая номер последнего цилиндра или размер в байтах, КБ или МБ. Введите 4000M, что даст около 4 ГБ места на новом разделе (например), и нажмите Enter.

Используйте подкоманду p, чтобы убедиться, что раздел создан так, как вы его указали. Обратите внимание, что раздел, вероятно, не будет точно таким, как вы указали, если вы не использовали конечный номер цилиндра. Команда fdisk может выделять дисковое пространство только с приращением на целых цилиндрах, поэтому ваш раздел может быть немного меньше или больше, чем вы указали. Если раздел не тот, который вам нужен, вы можете удалить его и создать заново.

Теперь необходимо указать, что новый раздел должен быть разделом подкачки. Подкоманда t позволяет указать тип раздела. Поэтому введите t , укажите номер раздела, и когда он запросит тип раздела с шестнадцатеричным кодом, введите 82, который является типом раздела подкачки Linux, и нажмите Enter.

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

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

Теперь используйте команду fdisk -l, чтобы вывести список разделов, и новый раздел подкачки должен быть среди перечисленных. Убедитесь, что новый тип раздела — «Linux swap».

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

где X — номер раздела. Добавьте новую строку, похожую на эту, в зависимости от расположения вашего нового раздела подкачки:

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

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

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

Добавление подкачки в дисковую среду LVM

Если в настройках вашего диска используется LVM, изменить пространство подкачки будет достаточно просто. Опять же, это предполагает наличие свободного места в группе томов, в которой находится текущий том подкачки. По умолчанию процедуры установки Fedora Linux в среде LVM создают раздел подкачки как логический том. Это упрощает задачу, поскольку вы можете просто увеличить размер тома подкачки.

Вот шаги, необходимые для увеличения объема пространства подкачки в среде LVM:

Отключить обмен.

Увеличьте размер логического тома, предназначенного для подкачки.

Настройте том с измененным размером как пространство подкачки.

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

Вы можете видеть, что текущий размер подкачки составляет 8 ГБ. В этом случае мы хотим добавить 2 ГБ к этому объему подкачки. Во-первых, остановите существующий обмен. Возможно, вам придется остановить запущенные программы, если используется пространство подкачки.

Теперь увеличьте размер логического тома.

Выполните команду mkswap, чтобы превратить весь этот 10-гигабайтный раздел в пространство подкачки.

Включите обмен обратно.

Теперь проверьте наличие нового пространства подкачки с помощью команды list block devices. Опять же, перезагрузка не требуется.

Вы также можете использовать команду swapon -s или top , free или любую из нескольких других команд, чтобы проверить это.

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

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

Читайте также: