Swap память что это

Что такое 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 гигабайта, как правило, этого должно хватать. Но, Вы можете скорректировать его размер под себя.

Читайте также:  Gimp не рисует кисть

Создание файла 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, UUID=e5f3e9cf-c1a9-4ed4-b8ab-711b6a7d6544

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

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

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

Читайте также:  Почему не запускается кхл 2012

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

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

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

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

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

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

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

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

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

Руководство по созданию SWAP раздела на Linux

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

В ОС Linux оперативная память (ОЗУ, RAM, random access memory) делится на разделы, называемые страницами (pages). Swapping (”подкачка”, своппинг) – это процесс во время которого страницы памяти копируются на специально сконфигурированный для этого раздел диска, называемый swap space (раздел подкачки, может быть как и файлом, так и разделом жесткого диска), для освобождения ОЗУ. Совокупные размеры физической памяти и раздела подкачки – это объем имеющийся виртуальной памяти.

Своппинг необходим по следующим причинам:

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

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

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

Если файл или раздел свопа хранится на SSD, нужно понимать что поиск и чтение данных происходит через оперативную память, что, в свою очередь, всё равно увеличивает время отклика.

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

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

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

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

В случае отсутствия можно создать файл для swap

Данная команда создаст файл /swap.file размером 512 мегабайт. Для увеличения данного показателя, измените count

Выставляем права на него, чтобы никто не мог писать и читать файл, кроме владельца — root

Отформатируйте файл под swap

Отредактируйте файл /etc/fstab

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

Далее можно перезагрузить сервер и проверить наличие swap командой free -m

Добрый день.
На сервере Ubuntu 14.04, KVM

htop показал:
Mem: 1736/3953MB
Swp: 502/510MB
mysql отъедал 1700mb, после перезагрузки mysql, Mem:1742/3953MB, swap оказался 10/510MB.

По какой причине оперативная память может не использоваться, а уходить в swap?

  • Вопрос задан более трёх лет назад
  • 2261 просмотр

Это нормальная ситуация.
Смотрите — в памяти есть данные которые мало востребованы, система скидывает их в своп, но из памяти не стирает.
Если вдруг потребуется выделить много памяти, система мгновенно выделит эту память, так как данные уже в свопе.
Не потребуется память — они так и останутся в памяти и будут доступны со скоростью памяти.

В итоге — максимальное быстродействие и максимально эффективное использование памяти.

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

В итоге небольшое использование ОС свопа в фоновом режиме это нормально и полезно. Даже когда оперативки у вас достаточно. Ненормально если памяти мало и все приложения активно свопятся.

Ссылка на основную публикацию
Popupuireceiver android что это
Коллеги из вирлаба написали статью о бэкдоре, с возможностями котого вы должны ознакомиться: http://www.securelist.com/ru/blog/207768863/Samyy_slozhnyy_Android_troyanets . В своей же статье я...
Led bonus control для люстры
Устройство и ремонт радиоуправляемой люстры Здесь я расскажу об устройстве и неисправностях радиоуправляемых люстр с галогенными и светодиодными источниками света....
Nokia 105 подключение к компьютеру
Несмотря на широкую популярность Андроид-смартфонов и гаджетов от Apple, многие люди до сих пор предпочитают лаконичные, практичные и простые телефоны....
Ras async adapter что это
Последовательный асинхронный адаптер (COM порт). Основные понятия и термины Практически каждый компьютер оборудован хотя бы одним последовательным асинхронным адаптером. Обычно...
Adblock detector