Как добавить своп в Ubuntu 12.04
Статус: устарело
В этой статье рассматривается версия Ubuntu, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением Ubuntu 12.04, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию Ubuntu:
- Обновите Ubuntu до версии 14.04.
- Обновление Ubuntu 14.04 до Ubuntu 16.04
- Перенесите данные сервера в поддерживаемую версию.
Причина:
См. вместо этого:
О замене Linux
Оперативная память Linux состоит из блоков памяти, называемых страницами. Чтобы освободить страницы ОЗУ, может произойти «подкачка Linux», когда страница памяти копируется из ОЗУ в предварительно сконфигурированное пространство на жестком диске. Подкачки Linux позволяют системе использовать больше памяти, чем было изначально физически доступно.
Однако обмен имеет недостатки. Поскольку память на жестких дисках намного медленнее, чем оперативная память, производительность виртуального частного сервера может значительно снизиться. Кроме того, перегрузка подкачки может начаться, если система будет перегружена слишком большим количеством файлов, загружаемых и удаляемых.
Хотя подкачка обычно рекомендуется для систем, использующих традиционные вращающиеся жесткие диски, использование подкачки с твердотельными накопителями может со временем вызвать проблемы с аппаратной деградацией. В связи с этим мы не рекомендуем включать своп в DigitalOcean или любом другом провайдере, который использует хранилище SSD. Это может повлиять на надежность базового оборудования для вас и ваших соседей.
Если вам нужно повысить производительность вашего сервера, мы рекомендуем обновить Droplet. Это приведет к лучшим результатам в целом и снизит вероятность возникновения проблем с оборудованием, которые могут повлиять на вашу службу.
Проверить пространство подкачки
Прежде чем мы приступим к настройке файла подкачки, нам нужно проверить, включены ли какие-либо файлы подкачки на VPS, просмотрев сводку использования подкачки.
sudo swapon -s
Пустой список подтвердит, что у вас не включены файлы подкачки:
Filename Type Size Used Priority
Проверьте файловую систему
После того, как мы узнаем, что у нас не включен файл подкачки на виртуальном сервере, мы можем проверить, сколько места у нас есть на сервере с помощью команды df
. Файл подкачки займет 256 МБ — поскольку мы используем только около 8% /dev/sda, мы можем продолжить.
df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda 20907056 1437188 18421292 8% / udev 121588 4 121584 1% /dev tmpfs 49752 208 49544 1% /run none 5120 0 5120 0% /run/lock none 124372 0 124372 0% /run/shm
Создайте и включите файл подкачки
Теперь пришло время создать сам файл подкачки с помощью команды dd:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k
\of=/swapfile обозначает имя файла. В данном случае это имя файла подкачки.
Впоследствии мы собираемся подготовить файл подкачки, создав область подкачки linux:
sudo mkswap /swapfile
Отображаются результаты:
Setting up swapspace version 1, size = 262140 KiB no label, UUID=103c4545-5fc5-47f3-a8b3-dfbdb64fd7eb
Завершите активацией файла подкачки:
sudo swapon /swapfile
Затем вы сможете увидеть новый файл подкачки при просмотре сводки подкачки.
swapon -s Filename Type Size Used Priority /swapfile file 262140 0 -1
Этот файл будет храниться на виртуальном частном сервере до тех пор, пока машина не перезагрузится. Вы можете убедиться, что своп является постоянным, добавив его в файл fstab.
Откройте файл:
sudo nano /etc/fstab
Вставьте в следующую строку:
/swapfile none swap sw 0 0
Для параметра подкачки в файле должно быть установлено значение 10. Пропуск этого шага может привести к снижению производительности, тогда как установка значения 10 приведет к тому, что подкачка будет действовать как аварийный буфер, предотвращая сбои из-за нехватки памяти.
Вы можете сделать это с помощью следующих команд:
echo 10 | sudo tee /proc/sys/vm/swappiness echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
Чтобы файл не был доступен для чтения всем, вы должны установить правильные разрешения для файла подкачки:
sudo chown root:root /swapfile sudo chmod 0600 /swapfile