No Image

Что такое swap файл

СОДЕРЖАНИЕ
1 просмотров
11 марта 2020

Подкачка страниц (англ. paging ; иногда используется термин swapping от swap , /swɔp/ ) — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ во вторичное хранилище (жёсткий диск или другой внешний накопитель, такой как флеш-память), освобождая ОЗУ для загрузки других активных фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.

Временно выгруженные из памяти страницы могут сохраняться на внешних запоминающих устройствах как в файле, так и в специальном разделе на жёстком диске (partition), называемые соответственно swap-файл и swap-раздел. В случае необходимости выгрузить из ОЗУ страницы, соответствующие содержимому какого-либо файла на жёстком диске (например, memory-mapped files), они могут не выгружаться, а просто удаляться. При запросе такой страницы она может быть считана из оригинального файла.

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

Содержание

История [ править | править код ]

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

Смысл термина изменился в 60-х годах, когда в операционных системах появилась поддержка виртуальной памяти: под свопингом стали понимать загрузку и выгрузку отдельных страниц. Впервые подкачка страниц была реализована в компьютере Atlas, выпущенном в 1962 году.

Отказы страниц [ править | править код ]

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

  1. Определить расположение требуемой страницы во вторичном хранилище.
  2. Получить пустой страничный кадр в физической памяти для использования в качестве контейнера для данных.
  3. Загрузить запрошенные данные в полученный страничный кадр.
  4. Обновить таблицу страниц, чтобы она указывала на новый страничный кадр.
  5. В прозрачной форме вернуть управление программе, повторно выполнив вызвавшую ошибку страницы инструкцию.

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

Для обеспечения эффективной работы система подкачки должна выбирать для выгрузки те страничные кадры, обращение к которым в ближайшее время наименее вероятно. Существуют различные алгоритмы замещения страниц. В операционных системах используются алгоритмы LRU (англ. Last recently used ), FIFO (англ. First In First Out ) либо алгоритмы с учётом рабочего множества процесса [1] .

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

Алгоритмы определения устаревших страниц [ править | править код ]

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

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

Наиболее часто используемые критерии поиска:

  • Least recently used. Удаляются те страницы, доступ к которым производился наиболее давно. Считается, что в последующем к таким страницам будет происходить минимум обращений.
  • Last recently used. Удаляются недавно освободившиеся страницы. Подразумеваются страницы только что завершившихся процессов.

Пробуксовка [ править | править код ]

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

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

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

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

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

Недостатки и возможность их преодоления [ править | править код ]

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

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

В 32-разрядной Windows XP, Vista, 7 для своп-файла можно использовать оперативную память за пределами 3-го гигабайта, используя сторонние программы по созданию электронных дисков, хранящихся в памяти.

Читайте также:  Что делать если забыл pin код телефона

В Linux поддерживается сходный механизм, zswap, размещающий своп в памяти в сжатом виде.

Файлы и разделы подкачки [ править | править код ]

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

Фрагментация файла подкачки [ править | править код ]

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

Рекомендации по размещению файла подкачки [ править | править код ]

  • Одним из способов выделения места для swap‐файла (раздела), рекомендуемым в течение многих лет [источник не указан 2501 день] , является кратное выделение памяти, когда объём этого файла равен объёму оперативной памяти, умноженному на константу от 0,5 до 2 или 3.
  • Если на компьютере имеется более одного жёсткого диска, то для более быстрого обращения к файлу подкачки его желательно разместить на наименее нагруженном запросами чтения/записи физическом диске. Хорошим выбором будет физический файл подкачки на диске, который имеет наибольшую скорость чтения/записи.
  • В Windows скорость чтения из небольших разделов больше у FAT32 по сравнению с NTFS, однако, благодаря более высокой устойчивости NTFS к сбоям и значительным объёмам современных жестких дисков, разделы с FAT32 ныне редко используются.
  • При наличии на компьютере значительного объёма ОЗУ (16-32 гигабайт) и использовании большинства популярных ОС семейств GNU/Linux можно полностью отключить подкачку.

Безопасность при работе со swap-файлом [ править | править код ]

Из файла (раздела) подкачки зачастую можно извлечь конфиденциальную информацию, используемую при работе вычислительной системы. Поэтому при работе с секретными данными обычно производится очистка swap — например, с помощью утилиты sswap из комплекта secure remove.

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

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

Использование файла подкачки может приводить к заражению некоторых ОС компьютерными вирусами, так как существует уязвимость [ источник не указан 3022 дня ] , позволяющая вытеснить выполняемые программы в виртуальную память и изменить выполняемый код с помощью прямого доступа к жёсткому диску.

Unix [ править | править код ]

В ОС Unix, и подобных ей, swap обычно помещается на отдельный раздел жёсткого диска, что ранее ускоряло доступ к данным, по сравнению с расположением swap на обычном разделе. В ядрах Linux 2.6 и новее работа swap-файла не уступает по производительности swap-разделу [2] [3] .

Пример создания swap-файла для GNU/Linux:

Oracle Solaris может использовать тома ZFS в качестве разделов подкачки:

Кроме использования при работе системы, некоторые дистрибутивы GNU/Linux используют SWAP раздел для организации режима сна («спящий режим», hibernation или «suspend to disk» – режим S4 ACPI). Для поддержки этого режима размер SWAP следует задать равным размеру оперативной памяти, увеличенному на 10-15%.

ОС Microsoft Windows и Windows NT [ править | править код ]

Область жёсткого диска, предназначенная для свопинга, располагается в отдельном файле, который называется файл подкачки, своп-файл (от англ. swap file ). Он называется pagefile.sys и по умолчанию создаётся системой в корневом каталоге диска C:. В дальнейшем пользователь может управлять размером и размещением файла подкачки, например, используя панель управления, пункт Система.

В Windows 9x файл подкачки называется win386.swp и располагается в каталоге Windows. Однако правкой файла system.ini его можно перенести в корневой каталог для последующего совместного использования с Windows NT.

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

В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Операционная система преобразует виртуальный адрес в физический, при необходимости подгружая страницу с жёсткого диска в оперативную память. При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются той части, которая отвечает за использование файла подкачки).

В семействе операционных систем Microsoft Windows место для хранения страниц на жёстких дисках должно быть выделено заранее. Пользователь может положиться на автоматический механизм или самостоятельно указать размер области виртуальной памяти на каждом из разделов диска. На указанных разделах операционной системой создаётся файл pagefile.sys требуемого размера, который и хранит «сброшенные» из оперативной памяти страницы.

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

Механизм организации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты. Этот механизм позволяет, к примеру, разбить данные процесса на логические блоки. [1] Для каждого сегмента, как и для страницы, могут быть назначены права доступа к нему пользователя и его процессов. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.

Читайте также:  Прическа люси из хвоста феи

Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.

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

Свопинг

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

Фрагментация файла подкачки

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

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

Методики эффективной организации файла подкачки

  • Одним из способов выделения места для swap‐файла (раздела) является кратное выделение памяти, когда объём этого файла равен объёму оперативной памяти, умноженному на 1, на 2, на 3.
  • Если на компьютере имеется более одного жёсткого диска, то для более быстрого обращения к файлу подкачки его желательно разместить на наименее нагруженном запросами чтения/записи физическом диске. Хорошим выбором будет физический диск, с которого не запускается ОС или приложения.
  • Следует учесть пропускную способность интерфейса жёсткого диска (SATA), а также характеристики самих дисков. Лучше разместить файл подкачки на диске, который имеет наибольшую скорость чтения/записи.
  • В Windows скорость чтения из небольших разделов больше у NTFS [2] , однако, благодаря более высокой устойчивости NTFS к сбоям и значительным объёмам современных винчестеров, разделы с FAT32 ныне редко используются.
  • При наличии на компьютере значительного объёма ОЗУ (1 и более гигабайт) и использовании большинства популярных ОС семейств GNU/Linux и MS Windows (кроме Windows Vista) можно полностью отключить подкачку. При использовании различных версий Windows Vista также можно отключить подкачку, однако, в силу ресурсоёмкости этой системы, желательно при этом иметь не менее 2 Гб физической памяти.

Дополнительные сведения

Из файла (раздела) подкачки зачастую можно извлечь конфиденциальную информацию, используемую при работе вычислительной системы. Поэтому при работе с секретными данными обычно производится очистка swap — например, с помощью утилиты sswap из комплекта secure remove.

Алгоритмы определения устаревших страниц

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

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

Наиболее часто используемые критерии поиска:

  • Less Recently Used. Удаляются те страницы, доступ к которым производился наиболее давно. Считается, что в последующем к таким страницам будет происходить минимум обращений.
  • Last Recently Used. Удаляются недавно освободившиеся страницы. Подразумеваются страницы только что завершившихся процессов.

Недостатки

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

Операционные системы

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

Unix-подобные

Пример создания swap-файла для GNU/Linux:

sudo dd if=/dev/zero of=/swap bs=1024 count=128K # Создание файла необходимого размера для swap (в данном случае 128 Мб)

sudo mkswap /swap # Инициализация структуры swap в файле

sudo /bin/sync # Сброс изменений на диск

sudo swapon /swap # Включение swap (отключение – swapoff)

Microsoft Windows и Windows NT

Область жёсткого диска, предназначенная для свопинга, располагается в отдельном файле, который называется файл подкачки, своп-файл (от англ. swap file ). Он называется pagefile.sys и по умолчанию создаётся системой в корневом каталоге диска C:. В дальнейшем пользователь может управлять размером и размещением файла подкачки, например, используя Панель управления, пункт Система.

В Windows 9x файл подкачки называется win386.swp и располагается в каталоге Windows. Однако правкой файла System.INI его можно перенести в корневой каталог для последующего совместного использования с Windows NT.

См. также

  • Кэш-память
  • Менеджер виртуальной памяти
  • Устройство управления памятью (Memory Management Unit)
  • Утечка памяти

Примечания

  1. В семействе операционных систем Microsoft Windows сегментная адресация не используется и заменена делением памяти на секции, что в сущности почти одно и то же.
  2. http://msk.nestor.minsk.by/kg/2005/16/kg51614.html

Литература

Вахалия Ю. UNIX изнутри. — СПб.: Питер, 2003. С.844. ISBN 5-94723-013-5

Иртегов Д. Введение в операционные системы. СПб.: Питер, 2002.

Wikimedia Foundation . 2010 .

Смотреть что такое "Своп-файл" в других словарях:

своп-файл — сущ., кол во синонимов: 1 • файл (8) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

файл — обложка Словарь русских синонимов. файл сущ., кол во синонимов: 8 • аудиофайл (1) • батник … Словарь синонимов

Файл подкачки — Виртуальная память схема адресации памяти компьютера, при которой память представляется программному обеспечению непрерывной и однородной, в то время как в реальности для фактического хранения данных используются отдельные (разрывные) области… … Википедия

Читайте также:  Что делать при отмене заказа на алиэкспресс

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

Подкачка страниц — (англ. Paging; иногда используется термин swapping от swap, /swɔp/) один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ на жёсткий диск (или другой внешний накопитель,… … Википедия

mdadm — (ранее mdctl) Тип Дисковая утилита Разработчик Neil Brown Операционная система Linux Последняя версия 3.2.5 (2012 05 18) Лицензия GNU GPL 2 и новее Сайт … Википедия

Mdadm — (ранее mdctl) Тип Дисковая утилита Разработчик Neil Brown [1] ОС GNU/Linux Версия 3.1.1 (2009 11 19) Лицензия … Википедия

OpenVZ — виртуализация на уровне ОС Тип виртуализация Разработчик Сообщество … Википедия

BestCrypt — Тип Шифрование дисков Разработчик Jetico, Inc. Операционная система Microsoft Windows 4.x, Windows NT, Linux 2.4+, MS DOS Последняя версия 8.23.8 (10 апреля 2012) … Википедия

Кожокин, Евгений Михайлович — В Википедии есть статьи о других людях с такой фамилией, см. Кожокин. Евгений Михайлович Кожокин [[Файл … Википедия

Что такое SWAP

SWAP (своп) — это механизм виртуальной памяти, при котором часть данных из оперативной памяти (ОЗУ) перемещается на хранение на HDD (жёсткий диск), SSD (твёрдотельный накопитель), флеш-накопитель или иное вторичное хранилище. Как правило, swapping (свопинг) происходит, когда оперативная память переполнена, и ей для работы требуется дополнительное пространство.

Когда может понадобиться своп

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

  1. Постоянное падение сайта: Ошибка соединения с базой данных — означает, например, что MySQL упал;
  2. При внимательном изучении логов /var/log/mysql.log обнаруживается ошибка InnoDB: Fatal error: cannot allocate memory for the buffer pool . Она свидетельствует о том, что базе данных не хватает выделенной ей оперативной памяти для создания буфера.

При подобных симптомах и ошибках может помочь своппинг.

Преимущества SWAP

Сравнение стоимости оперативной памяти и SSD
(цены актуальны на 7 июля 2017 года) IHOR FirstVDS
Оперативная память, в среднем за 1 гигабайт 100 рублей в месяц 170 рублей в месяц
SSD, в среднем за 1 гигабайт 10 рублей в месяц 13 рублей в месяц

Как видно из таблицы, экономия выйдет примерно в 10 раз.

Недостатки SWAP

SWAP — это не замена оперативной памяти, а всего лишь его поддержка.

Как создать и подключить файл подкачки SWAP

Далее, в работе используется командная строка SSH.
Инструментарий: Far Manager или Putty.
Для примера приводятся команды из под root . Если Вы работаете не под root , перед командами задавайте префикс sudo

Проверка наличия свопа в системе

Для начала, нужно убедиться, что своп ещё не подключен:

Если команда выдала пустой результат или что-то навроде:

— значит, своп, скорее всего отсутствует.

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


Если в таблице в строке swap стоит 0, значит своп отсутствует.

Проверка наличия свободного места на диске

Теперь, надо проверить, сколько свободного места есть на диске:

В результате, мы увидим что-то подобное:

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

Какого размера создать swap

Исходите из принципа — сколько может понадобиться, столько и выделяйте. Как правило, можно начинать с размера объёма оперативной памяти, либо его удвоенного количества. Например, если у вас в системе 2 гигабайта оперативки, своп можно сделать размером 2-4 гигабайта, как правило, этого должно хватать. Но, Вы можете скорректировать его размер под себя.

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

Допустим, мы хотим создать swap-файл размером 4 гигабайта.
Далее, здесь существует 2 подхода, традиционный медленный и новый быстрый:

Быстрый способ Используем fallocate :

Результатом будет пустая строка, это нормально.
В отличие от dd , результат будет получен почти сразу, и я рекомендую именно его. Традиционный, медленный способ Или используем команду:

Синтаксис команды простой:

  • dd — команда предназначена для того, чтобы что-то куда-то копировать побайтово;
  • if=/dev/zero — указывает на источник, т.е. на то, откуда копируем, в данном случае из /dev/zero — это специальный файл в UNIX-подобных системах, представляющий собой источник нулевых байтов;
  • of=/swapfile — указывает путь назначения, куда копируем данные;
  • bs=1G — количество байт, которые будут записаны за раз. В нашем случае, 1 гигабайт. Обозначения: G — гигабайт, M — мегабайт, K — килобайт, и так далее;
  • count=4 — сколько блоков размером с bs будет создано, в нашем случае 4.

Будьте очень внимательны с синтаксисом команды, потому что если, например, ошибиться с определением пути для of= (куда сохранять файл), можно повредить данные на диске.

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

В результате увидим:
-rw-r–r– 1 root root 4.0G Jul 07 16:16 /swapfile
Как видим, файл создался верно и с нужным объёмом.

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

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

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

В результате, мы должны увидеть подобное:
-rw——- 1 root root 4.0G Jul 07 16:16 /swapfile
Права прописаны верно.

Теперь нужно сделать из swapfile файл подкачки:

В результате, увидим примерно следующее:
Setting up swapspace version 1, size = 4193300 KiB
no label, UU >

Теперь, файл готов в роли свопа. Подключим его к системе:

Если на данном этапе выходит похожая ошибка, значит, скорее всего, своп запрещено подключать в систему. Такое ограничение часто ставят на VDS с виртуализацией OpenVZ. Рекомендую использовать IHOR, сервера от 100 рублей в месяц и виртуализация KVM позволяют включать SWAP.

Всё, теперь своп подключен и работает. Осталось проверить правильность работы самой первой командой:

Своп также будет виден в стандартных командах:

Всё, теперь точно, своп в системе готов и будет использоваться при необходимости.

Добавление свопа в автозагрузку

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

Теперь система знает, где и как при перезагрузке искать и подключать своп.
Проверить, подключен ли своп в автозагрузке, можно с помощью редактора:

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

Как очистить SWAP в Linux

Вообще, это делается с помощью отключения и включения свопа.

Однако, я не рекомендую прибегать к этому способу, так как swap просто очищается, а не переносится в ОЗУ, и, в случае наличия данных системных процессов, система может стать недоступна.

Комментировать
1 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector