Меню Рубрики

Linux как освободить swap

Включить и выключить swap в linux

Swap – раздел подкачки в linux. Свап используется операционной системой при недостаточом количестве оперативной памяти. Т.е. вместо записи данных в оперативную память, если она практически вся заполнена, данные помещаются на жёсткий диск (свап-раздел). При этом производительность сервера как правило падает (по крайней мере если жёсткий диск не SSD) по причине того, что работа с оперативной памятью происходит гораздо быстрее записи/считывания с жёсткого диска, на котором и располагается файл подкачки (Swap).

Для выключения swap в linux (Ubuntu) без перезагрузки системы нужно воспользоваться командой:

Дожидаемся выполнения команды swapoff. Затем включаем swap:

Можно комбинировать команды, следующие команды выгрузят всё из свап, а затем снова сделают возможным использование свап, т.е. по сути освободят/очистят swap-раздел:

sudo swapoff -a && sudo swapon -a

Если при выключении swap sudo swapoff -a возникает ошибка: Невозможно выделить память, то проблему можно решить перезагрузкой.

Очистить (освободить) swap в linux

swapoff -a && swapon -a

sudo swapoff -a && sudo swapon -a

Узнать, используется ли swap

В данном случае используется 34Мб swap из доступных 879Мб.

Также можно посмотреть сколько используется swap используя утилиты top или htop .

Источник

Сделать автоматическое очищение swap

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

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

Некая программа активно юзает своп, несмотря на то, что оперативки дофига, и она используется в лучшем случае на 20%. Программа фигачит в своп, и как только он заполняется — все зависает. Если закрыть эту программу, то своп не очищается. Мне кажется странным, что в Linux на этот счет не предусмотрено никаких механизмов автоочищения свопа. Почему?

Ну и собственно, как сделать такой механизм руками? Ибо из-за этого свопа система начинает подлагивать, даже если он заполнен на 50%.

Если вы чего-то не знаете, это ещё не означает что этого нет. Данные в свопе будут перезаписаны при необходимости. Почитайте про swappiness, vfs_cache_pressure и вообще про swap.

Лучше установить swappiness в такое значение, чтобы своп не использовался особо. По умолчанию там какое-то дикое значение, что уже при 40% занятой памяти он начинает что-то делать со свопом.

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

месье со времен создания swap вы сделали величайшее открытие своих глаз — он нахер не нужен 🙂 а мужики-то не знають.
решение элементарное swapoff и удалить все записи о swap

Видимо, некая программа активно течёт. А zswap не включен случайно? Он у меня постоянно заполнялся непойми чем и переставал выполнять свои функции.

Ну и кроме того, swap внутри виртуалки или снаружи? Если снаружи, ставь swapiness 99%, если внутри, то отключи. Счастья тормозная эмуляция io не принесёт. Virtio ещё ничего, остальное просто хлам. Очевидно, это твой случай.

Ничего специально не включал, система kubuntu.

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

Описание в ОП очень похоже на мои проблемы с zswap. Очистить его можно очень просто — swapoff -a && swapon -a

Более того, если swapiness 99 ставить он тоже не будет использоваться. В него отправляется мусор и текучие приложения в первую очередь, остальное в норме заполняется только когда реальной памяти не хватает приложениям.

Более того, если swapiness 99 ставить он тоже не будет использоваться.

Тогда swapiness 0 надо ставить.

Взоржал с треда )) А выключить свап религия не позволяет?

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

А сколько Маньяки с сельхоз инструментарием выделяют сегодня памяти под виртуалки, что так свап кушает-с?

4 гига выделил, хотя в среднем ест 700-800 мб, не выходит за пределы 1 гига. Но своп включает всегда, даже если swapiness 10. Бестолковый механизм, совершенно неотлажен на использовании в виртуалках, отключил его

Взоржал с треда )) А выключить свап религия не позволяет?

Если бы ты не только с треда взоржал, но почитал бы и каменты, то понял бы, что я его отключил. Не отмонтировал на совсем, а выставил swapiness 0. Пока нормально.

сделай и всё взлетит,простые вещи- должен знать.

Источник

Как очистить swap-файл (своп) в Linux CentOS

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

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

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

Выключаем своп-файл для того, чтобы данные с него удалились командой в ssh консоли:

После этого swap-файл нужно включить обратно, делаем это следующей командой в ssh консоли:

Также для того, чтобы понять какой процесс загрузил swap раздел нужно запустить команду top (диспетчер процессов) и нажать F потом P потом клавишу Enter после этого вы увидите дополнительный столбец в top диспетчере и сможете отсортировать процессы по используемой памяти сочетанием клавиш Shift+M и далее по PID процесса удаляйте через команду kill -9 PID.

Источник

SWAP — как создать, подключить, очистить и отключить файл подкачки в Linux

Что такое 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, UUID=e5f3e9cf-c1a9-4ed4-b8ab-711b6a7d6544

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Вк мессенджер для mac os
  • Виснет mac os при загрузке
  • Вирусы под mac os
  • Вирус шифровальщик mac os
  • Виртуальный сервер для mac os