Увеличить файл подкачки ubuntu

Обновлено: 21.11.2024

В последних выпусках Ubuntu вместо традиционного раздела подкачки используется файл подкачки. Файл подкачки — это просто файл в корневом каталоге, который используется как файл подкачки для распределения нагрузки на ОЗУ.

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

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

Увеличить размер подкачки в Ubuntu

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

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

Теперь давайте посмотрим, как увеличить файл подкачки. Первым делом убедитесь, что в вашей системе есть файл подкачки.

Он покажет текущий доступный обмен. Если вы видите файл типа, это означает, что вы используете файл подкачки.

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

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

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

Убедитесь, что вы пометили этот файл как файл подкачки:

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

После этого включите файл подкачки:

Вот и все. Вы только что увеличили размер подкачки в Ubuntu с 2 ГБ до 4 ГБ. Вы можете проверить размер подкачки с помощью команды free или команды swapon --show.

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

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

В случае Linux файл подкачки является важной частью. Это не обязательная опция, но ее наличие имеет решающее значение для ряда целей. Как правило, при установке системы вы должны указать размер файла подкачки. Рекомендуемый размер — 4 ГБ, но вы можете уменьшить или увеличить его в зависимости от ваших потребностей. Сегодня давайте посмотрим, как изменить размер подкачки в Ubuntu.

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

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

Согласно результату, в системе есть файл подкачки в «/swapfile».

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

Теперь измените размер файла подкачки –

Здесь общий размер файла подкачки будет bs*count = 1M x 4096 = 4 ГБ

Снова сделать «/swapfile» пригодным для использования –

Включить файл подкачки –

После перезагрузки системы проверьте результат –

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

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

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

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

Удалите запись файла подкачки из файла «/etc/fstab». Это должна быть последняя строка файла.

Теперь пришло время удалить файл подкачки.

Не забудьте перезагрузить систему!

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

Отредактируйте файл «/etc/fstab» и добавьте следующую строку в конец файла –

Перезагрузите систему.

Вуаля! Ваш файл подкачки вернулся!

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

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

Об авторе

Сидратул Мунтаха

Студент CSE. Я люблю Linux и играю с технологиями и гаджетами. Я использую как Ubuntu, так и Linux Mint.

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

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

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

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

Информация, записываемая на диск, будет выполняться значительно медленнее, чем информация, хранящаяся в ОЗУ, но операционная система предпочтет хранить данные приложений в памяти и использовать подкачку для более старых данных. В целом, наличие пространства подкачки в качестве запасного варианта на случай истощения оперативной памяти вашей системы может стать хорошей защитой от исключений, связанных с нехваткой памяти, в системах с доступным хранилищем, отличным от 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, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

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

Зачем мне своп?

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

Гибернация (приостановка на диске) Функция гибернации (приостановка на диске) записывает содержимое ОЗУ в раздел подкачки перед выключением машины. Следовательно, ваш раздел подкачки должен быть не меньше размера вашей оперативной памяти. Хотя последние версии Ubuntu не поддерживают спящий режим OOTB, вы можете настроить свою систему так, чтобы разрешить гибернацию. В обоих вариантах (PM-UTILS или SYSTEMD) вы можете использовать раздел или файл.

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

Оптимизация использования памяти Поскольку механические жесткие диски значительно медленнее ОЗУ (SSD — твердотельный накопитель — хранилище не так медленно, как физические диски, но все же медленнее, чем ОЗУ), когда вам нужен файл (будь то файл данных, например видео, исполняемые файлы, такие как Firefox, или библиотеки), ядро ​​Linux считывает файл в оперативную память и хранит его там, так что в следующий раз, когда он вам понадобится, он уже находится в оперативной памяти, и доступ к данным осуществляется намного быстрее. Части оперативной памяти, которые ускоряют чтение с диска, называются «кэшированной памятью». Вы заметите, что они имеют огромное значение с точки зрения отзывчивости. Ядро Linux автоматически перемещает ОЗУ, зарезервированное программами, но на самом деле не используемое, в раздел подкачки, чтобы он лучше служил для расширения кэшированной памяти.

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

Сколько свопов мне нужно?

Для менее 1 ГБ физической памяти (ОЗУ) настоятельно рекомендуется, чтобы пространство подкачки, как минимум, было равно объему ОЗУ. Кроме того, рекомендуется, чтобы пространство подкачки было не более чем в два раза больше объема ОЗУ в зависимости от объема доступного для системы места на жестком диске из-за убывающей отдачи.

Для более современных систем (> 1 ГБ) пространство подкачки должно быть как минимум равно размеру вашей физической памяти (ОЗУ) «если вы используете спящий режим», в противном случае вам потребуется минимум round(sqrt(RAM)) и максимум в два раза больше оперативной памяти. Единственным недостатком наличия большего пространства подкачки, чем вы фактически используете, является место на диске, которое вы будете резервировать для него.

"Убывающая отдача" означает, что если вам нужно больше места подкачки, чем удвоенный размер ОЗУ, вам лучше добавить больше ОЗУ, так как доступ к жесткому диску (HDD) примерно на 10³ медленнее, чем доступ к ОЗУ, поэтому что-то, что займет 1 секунда, вдруг занимает более 15 минут! И еще больше минуты на быстром твердотельном накопителе (SSD).

Примеры сценариев

(последние 3 столбца обозначают пространство подкачки)

Как добавить больше свопа?

Swap обычно ассоциируется с разделом подкачки, возможно, потому, что пользователю предлагается создать раздел подкачки во время установки. По сути, в качестве устройства подкачки можно использовать любой файл, будь то раздел или обычный файл. Подкачку можно добавить, увеличив размер раздела подкачки или добавив файл подкачки. Имейте в виду, что при создании файла подкачки он может не обязательно использовать непрерывные блоки диска (как раздел подкачки), и это может отрицательно сказаться на производительности, поскольку время доступа к диску может быть больше, и чем больше ваша система использует обмен, тем хуже будет. Ядро Linux также напрямую обращается к блоку ввода-вывода блока подкачки, минуя все кэширование, метаданные и код файловой системы, поэтому файл подкачки не должен оказывать вредного влияния на стабильность вашей базовой файловой системы. Начиная с ядра 2.6.29 система подкачки автоматически поддерживает устройства с поддержкой TRIM, такие как твердотельные накопители.

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

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