Як додати swap на ubuntu

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

Пропозиція від 8host.com

Як додати swap на ubuntu

Один з найпростіших способів збільшити активність сервера і запобігти помилкам додатків out of memory - це додавання простору swap (підкачки). Swap - це розділ на жорсткому диску, в якому операційна система може тимчасово зберігати дані, які вона не може утримувати в оперативній пам'яті.

В принципі, це дає можливість збільшити кількість інформації, що зберігається в робочій пам'яті, але з деякими застереженнями. Простір жорсткого диска буде використовуватися, головним чином, коли RAM вже недостатньо для передачі даних.

Інформація, записана на жорсткий диск, буде довантажувати повільніше зберігається в оперативці інформації. Операційна система запускає дані додатки в оперативній пам'яті, а swap використовує для зберігання старіших даних. В цілому, мати swap-простір на випадок, якщо ОЗУ переповниться, - відмінний спосіб перестрахуватися.

Даний посібник охоплює створення і активацію swap-файлу на сервері Ubuntu 14.04.

Перевірка системи на Swap

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

Щоб дізнатися, чи є активне swap-простір в поточній системі, наберіть:

sudo swapon -s
Filename Type Size Used Priority

Якщо (як показано вище) повертається тільки заголовок таблиці, в даній системі немає активного swap-простору.

Ще один, більш звичний спосіб перевірки swap-простору - утиліта free, яка показує використання пам'яті системи. Щоб дізнатися про стан пам'яті і swap в мегабайтах, наберіть:

free -m
total used free shared buffers cached
Mem: 3953 154 3799 0 8 83
-/ + Buffers / cache: 62 3890
Swap: 0 0 0

Як можна бачити, загальне використання swap в мережі дорівнює 0, що збігається з результатом попередньої команди.

Доступне простір на жорсткому диску

Як правило, в якості swap-простору використовується спеціально виділена область диска. Проте, змінити схему розбиття диска не завжди можливо. В такому випадку swap-файл можна створити в уже існуючому розділі.

Перш ніж приступити до створення такого файлу, потрібно дізнатися про стан диска. Щоб отримати цю інформацію, введіть:

df -h
Filesystem Size Used Avail Use% Mounted on
/ Dev / vda 59G 1.3G 55G 3% /
none 4.0K 0 4.0K 0% / sys / fs / cgroup
udev 2.0G 12K 2.0G 1% / dev
tmpfs 396M 312K 396M 1% / run
none 5.0M 0 5.0M 0% / run / lock
none 2.0G 0 2.0G 0% / run / shm
none 100M 0 100M 0% / run / user

Як можна бачити в першому рядку результату, на жорсткому диску є 55 гігабайт, чого цілком достатньо для недавно створеного VPS середнього розміру; однак, фактичне використання пам'яті і параметри сервера можуть відрізнятися.

Існує безліч розхожих думок про «правильному» розмірі swap-простору. В цілому, це залежить від особистих переваг користувача і вимог програми. Як правило, swap-простір має дорівнювати або вдвічі більше обсягу оперативної пам'яті системи.

У цьому питанні потрібно орієнтуватися на вільний дисковий простір. Наприклад, якщо RAM системи - 4 гігабайти, а вдвічі більше swap-простір (тобто 8 гігабайт) займе істотну частину дискового простору, потрібно створити swap не більше 4 гігабайт.

Созданіеswap-файлу

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

У керівництві такий файл називається swapfile і знаходиться в root-каталозі (/). Файл повинен мати обсяг необхідного swap-простору. Є два основних способи створити swap-файл.

Спосіб 1: традиційний (повільний)

Як правило, для створення файлу з заздалегідь виділеним простором використовується команда dd - універсальна утиліта, яка записує дані з одного пункту до іншого.

Її можна використовувати, щоб написати нулі до файлу за допомогою спеціального псевдопристроїв системи Linux, розташованого в / dev / zero, яке просто видає необхідну кількість нулів. Як правило, це псевдопристроїв використовується для створення файлів з певною довжиною.

Щоб вказати розмір файлу, використовуйте комбінацію bs (block size - розмір блоку) та count (кількість блоків). Значення, які присвоюються кожному параметру, можна вибрати майже довільно. Важливо лише те, яким буде результат множення цих значень.

Наприклад, щоб створити файл розміром 4Гб, можна привласнити bs = 1G, а count = 4:

sudo dd if = / dev / zero of = / swapfile bs = 1G count = 4
4 + 0 records in
4 + 0 records out
4294967296 bytes (4.3 GB) copied, 18.6227 s, 231 MB / s

Перш ніж натиснути ENTER, перевірте команду: в разі якщо параметр of (що розшифровується як «output file» - вихідний файл) заданий невірно, вона може знищити дані іншого файлу.

Набравши наступну команду, можна побачити, що 4 гігабайти були виділені:

ls -lh / swapfile
-rw-r - r-- 1 root root 4.0G Apr 28 17:15 / swapfile

Як бачите, виконання даної команди займає досить багато часу. В даному прикладі на створення файлу системі знадобилося 18 секунд. Це тому, що їй потрібно було написати 4 гігабайти нулів.

Існує більш швидкий спосіб написання swap-файлів; щоб спробувати створити файл швидше, видаліть щойно створений файл і досліджуйте інструкцій наступного розділу:

sudo rm / swapfile

Спосіб 2: швидкий

Програма fallocate дозволяє створити такий файл швидше. Дана команда миттєво створює файл заздалегідь виділеного розміру, не маючи необхідності писати фіктивне вміст.

Отже, щоб створити файл в 4Гб, можна набрати:

sudo fallocate -l 4G / swapfile

Результат повернеться практично відразу ж. Щоб переконатися, що для даного файлу виділено необхідну кількість простору, наберіть:

ls -lh / swapfile
-rw-r - r-- 1 root root 4.0G Apr 28 17:19 / swapfile

Як бачите, все було виконано належним чином.

Актіваціяswap-файлу

Тепер файл створений, але система поки що не знає, що його потрібно використовувати в якості swap-простору. Потрібно відформатувати даний файл, а потім активувати його.

Але спочатку необхідно змінити права на файл, щоб тільки root мав право на читання. Swap-файл з правами на читання і зміна іншими користувачами - величезний ризик для безпеки сервера. Щоб передати всі привілеї користувачеві root, наберіть:

sudo chmod 600 / swapfile

Переконайтеся, що тепер права на файл встановлені вірно:

ls -lh / swapfile
-rw ------- 1 root root 4.0G Apr 28 17:19 / swapfile

Як бачите, права на читання і запис є тільки у користувача root.

Тепер, коли файл захищений, можна вказати системі на swap-простір за допомогою команди:

sudo mkswap / swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID = e2f1e9cf-c0a9-4ed4-b8ab-714b8a7d6944

Тепер файл можна використовувати в якості swap. Активуйте його, ввівши:

sudo swapon / swapfile

Переконайтеся, що процедура пройшла успішно, перевіривши звіти системи про swap, як на початку статті:

sudo swapon -s
Filename Type Size Used Priority
/ Swapfile file 4194300 0 -1

Тепер система повідомляє про активоване swap-файлі. Можна також використовувати і утиліту free, щоб підтвердити результат:

free -m
total used free shared buffers cached
Mem: 3953 101 3851 0 5 30
-/ + Buffers / cache: 66 3887
Swap: 4095 0 4095

Як бачите, swap-простір було додано успішно; тепер операційна система може використовувати його в разі потреби.

Автоматизація запуску swap-файлу

sudo nano / etc / fstab

В кінець файлу внесіть рядок, яка буде автоматично запускати створений файл:

/ Swapfile none swap sw 0 0

Збережіть зміни і закрийте fstab.

тонка настройкаswap

Існує кілька опцій, які можуть впливати на продуктивність системи при роботі swap.

Параметр swappiness задає частоту використання системою swap-простору. Значення swappiness виражається числом від 0 до 100, яке виражає відсотки. Якщо це значення близьке до нуля, ядро ​​не передаватиме дані в swap без крайньої необхідності. Пам'ятайте, взаємодія зі swap-файлом «дорого обходиться» сервера, оскільки вимагає більше ресурсів, ніж взаємодія з оперативною пам'яттю, що, отже, може привести до значного зниження продуктивності. Система, як правило, працює продуктивніше, якщо не дуже покладається на swap.

Якщо значення swappiness ближче до 100, система буде передавати в swap велику кількість даних з метою зберегти більше вільного місця в RAM. Залежно від профілю пам'яті програми і цілі використання сервера, це може бути краще в деяких випадках.

cat / proc / sys / vm / swappiness
60

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

Щоб змінити значення swappiness, використовуйте команду sysctl.

Наприклад, щоб встановити значення 10, потрібно набрати:

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

sudo nano /etc/sysctl.conf

і внесіть в нього такий рядок:

Потім збережіть і закрийте файл.

Ще одна важлива опція - це 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

sudo nano /etc/sysctl.conf

і внести в нього рядок:

Збережіть і закрийте sysctl.

Інструкції даного керівництва допоможуть навчитися раціонально використовувати оперативну пам'ять. Крім того, swap-простір може запобігти деякі загальні проблеми системи.

Зіткнувшись з помилкою OOM (out of memory) або виявивши, що система не може запустити потрібні програми, краще спробувати оптимізувати конфігурації додатків або оновити сервер. Налаштування swap, однак, дає велику гнучкість і заощадить час при роботі з менш потужним сервером.