Debian swapon команда не найдена

Обновлено: 04.07.2024

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

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

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

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

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

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

Недостатки SWAP

Медленная работа Если файл или раздел свопа хранится на HDD (жёстком диске), то скорость чтения данных с него намного меньше, чем из оперативной памяти. Получше дела обстоят с SSD (твёрдотельным накопителем), однако, надо понимать, что поиск и чтение данных происходит через оперативную память, что, в свою очередь, всё равно увеличивает время отклика. Поэтому, если Вы решили сэкономить на оперативной памяти, полностью положившись на SWAP, то я категорически не рекомендую так делать. Необходимо наличие свободного места на диске Вам необходимо зарезервировать свободное место на диске под своп, иначе стабильность работы не гарантируется. Это не то, чтобы недостаток свопа, просто его надо учитывать и помнить о нём.

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

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

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

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

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

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

Своп нулевой


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

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

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

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

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

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

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

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

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

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

Будьте очень внимательны с синтаксисом команды, потому что если, например, ошибиться с определением пути для 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 просто очищается, а не переносится в ОЗУ, и, в случае наличия данных системных процессов, система может стать недоступна.

Как добавить пространство подкачки в Debian 10 Linux

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

Прежде чем вы начнете

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


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

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

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


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

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

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

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

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

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

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

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

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

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

Регулировка значения подкачки

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

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

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

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

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

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


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

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

Отключите пространство подкачки, запустив:

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

Добавление swap-пространства (подкачки) – один из самых простых способов увеличить активность сервера и предупредить ошибки out of memory. Данный мануал поможет создать и включить swap-пространство на сервере Debian 9.

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

Что такое swap?

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

1: Проверка системы на swap

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

Чтобы узнать, есть ли активное swap-пространство в этой системе, введите:

sudo swapon --show

Если команда не вернула результатов, в текущей системе нет swap-пространства.

Еще один способ проверить swap – утилита free, которая показывает использование памяти системы. Чтобы узнать текущее состояние памяти и swap, наберите:

free -h
total used free shared buff/cache available
Mem: 990Mi 36Mi 863Mi 4.0Mi 89Mi 837Mi
Swap: 0B 0B 0B

Как видите, общее использование swap в сети равно 0, что совпадает с результатом предыдущей команды.

2: Проверка свободного пространства на жёстком диске

Теперь нужно узнать текущее состояние диска. Чтобы получить эти данные, введите:

df -h
Filesystem Size Used Avail Use% Mounted on
udev 488M 0 488M 0% /dev
tmpfs 100M 4.5M 96M 5% /run
/dev/vda1 25G 989M 23G 5% /
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/1001

В этом случае диск – это устройство / в столбце Mounted on; как видите, места на нём достаточно много.

Существует много различных мнений о «правильном» размере swap-пространства. В целом это зависит от личных предпочтений пользователя и требований приложения. Как правило, swap-пространство должно быть равно или вдвое больше объема оперативной памяти системы. В этом вопросе нужно ориентироваться на свободное дисковое пространство. Например, если RAM системы – 4 гигабайта, то вдвое большее swap-пространство (т.е., 8 гигабайт) займет существенную часть диска, а значит swap должен быть не более 4 гигабайт.

3: Создание swap-файла

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

В этом мануале такой файл называется swapfile и находится в root-каталоге (/).

Быстрее всего такой файл создаёт программа fallocate. Она мгновенно создает файл заранее выделенного размера без необходимости писать фиктивное содержимое.

Поскольку в данном случае используется сервер на 1 Гб RAM, мы создадим 1 Гб swap-пространства.

sudo fallocate -l 1G /swapfile

Чтобы проверить выделенный объём памяти, введите команду:

ls -lh /swapfile
-rw-r--r-- 1 root root 1.0G May 29 17:34 /swapfile

Как видите, команда создала файл с заданным объёмом памяти.

4: Включение swap-пространства

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

Но прежде нужно изменить права на файл, чтобы право на чтение имел только root. Swap-файл с правами на чтение и изменение другими пользователями – огромный риск для сервера. Чтобы передать все права пользователю root, введите:

sudo chmod 600 /swapfile

Проверьте права на этот файл:

ls -lh /swapfile
-rw------- 1 root root 1.0G May 29 17:34 /swapfile

Теперь только root может читать файл и вносить в него изменения. Итак, файл защищен, можно указать системе на swap-пространство с помощью команды:

sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=b591444e-c12b-45a6-90fc-e8b24c67c006f

Чтобы включить swap-пространство, введите команду:

sudo swapon /swapfile

Убедитесь, что операция прошла успешно:

sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2

Также сейчас можно использовать утилиту free:

free -h
total used free shared buff/cache available
Mem: 990Mi 37Mi 860Mi 4.0Mi 92Mi 834Mi
Swap: 1.0Gi 0B 1.0Gi

Теперь система знает о включенном swap-пространстве.

5: Автозагрузка swap

Итак, теперь swap-пространство включено, но оно будет действительно только в текущей сессии. При перезапуске сервер не будет запускать его автоматически. Чтобы изменить это, отредактируйте файл fstab. Создайте резервную копию файла на всякий случай:

sudo cp /etc/fstab /etc/fstab.bak

Добавьте данные о swap в конец файла.

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

6: Тонкая настройка swap

Есть несколько опций, которые могут влиять на производительность системы при работе swap.

Параметр swappiness

Параметр swappiness определяет частоту использования swap-пространства системой. Значение swappiness выражается числом от 0 до 100 и измеряется в процентах.

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

Если это значение ближе к 100, система будет передавать в swap много данных с целью сохранить больше свободного места в RAM. В зависимости от профиля памяти приложения и цели использования сервера, это может быть хорошим решением в некоторых случаях.

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

cat /proc/sys/vm/swappiness
60

Значение 60 не так уж плохо, но для виртуального выделенного сервера лучше уменьшить его.

Команда sysctl позволяет менять значение swappiness.

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

sudo sysctl vm.swappiness=10
vm.swappiness = 10

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

sudo nano /etc/sysctl.conf

Добавьте в конец файла строку:

Сохраните и закройте файл.

Параметр vfs_cache_pressure

Еще одна важная опция – это vfs_cache_pressure. Она управляет склонностью ядра восстанавливать память, которая используется для кэширования каталогов и инодов объектов.

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

cat /proc/sys/vm/vfs_cache_pressure
100

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

sudo sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50

Это значение тоже будет действительно только для текущей сессии. Чтобы сделать его постоянным, нужно (как и в случае со swappiness) открыть конфигурационный файл sysctl в текстовом редакторе:

sudo nano /etc/sysctl.conf

и добавить в него такую строку:

Сохраните и закройте sysctl.

Заключение

Надеемся, данный мануал научил вас рационально использовать оперативную память. Добавленное swap-пространство может предотвратить общие проблемы системы.

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

При выполнении команды swapon

Кто знает в чем проблема и как ее решить?

Перемещено JB из ubuntu


выложи сюда весь лог действий, начиная от dd и заканчивая swapon. И покажи что в dmesg попадает после неудачной попытки сделать swapon


Это путь к файлу, лошара.


ЛОЛ, проверь тогда права доступа и наличие свободного места на диске.

Выполнил все действия заново, на команде swapon вот такая ошибка

dmesg показал только одну строку


Как правило, это означает, что swapfile размещен на не подходящей для этого файловой системе

Файловая система раздела на котором расположен swapfile - ext4


Это на локальной системе или на VPS? Если на VPS, то некоторые сервисы запрещают использование swap.

Отдельная выделенная железяка с прямым доступом к HDD. Разделы созданы как primary.

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

Quasar ★★★★★ ( 08.06.17 12:27:26 )
Последнее исправление: Quasar 08.06.17 12:28:21 (всего исправлений: 1)

Если ФС позволяет изменять файл, то всё нормально.

Из выложенного мной history файла видно что я создаю неоходимый мной размер и форматирую его формат раздела подкачки. До этого момента все норм. Не выполняется команда swapon

Вот права доступа на файл

dd if=/dev/zero of=/swapfile bs=1M count=3072
swapon: swapfile has holes

Пытаюсь создать не пустой swapfile командой

Уже длительное время время система никак не может завершить создание данного файла + какие-то warning

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