Передісторія
Кілька років поспіль, я парився на віртуальному хостингу з багатьма іншими сайтами. Але от не давно з деяких міркувань, я вирішив переїхати на віртуальний сервер. Природно, що досвіду в адмініструванні серверів у мене 0 – було вирішено купувати панель управління ISPmanager.
Взяв віртуальний сервер з 2 ГБ оперативної пам’яті і 20 ГБ SSD. Встановив CentoS, ISPmanager, завантажив сайти – все працює і я радий “як слон після лазні”. Але ось прийшла мені в голову ідея, перевірити скільки одночасно відвідувачів онлайн може витримати сервер. Скориставшись 1 з сервісом для подібної перевірки, виявилося, що VPS налаштований кривими руками, падає при 50 відвідувачах. При цьому, всі CMS кричать, що немає з’єднання з базою даних (падає сервер MySQL). Після аналізу виявилося, що у мене сервер не налаштований нормально, тому apache і MySQL з’їдає всю оперативку.
В такому випадку є 2 варіанти:
- Найняти грамотного системного адміністратора, щоб той нормально налаштував сервер.
- Створити SWAP-файл підкачки (тимчасове рішення).
Було вирішено йти 2-м шляхом, так як грошей на адміна немає, ну і сам люблю пізнавати нові знання.
Інформацію далі, прошу не сприймати як єдину істину, так як вже було сказано, я zero в системному адмініструванні. А цю статтю пишу лише для того, щоб в майбутньому не шукати інструкції в Інтернеті, а в своєму блозі. Ну і можливо, даний пост допоможе, ще кільком таким нубам як я.
Що таке SWAP-файл підкачки?
SWAP – це механізм пам’яті, при якому не активні процеси з оперативної пам’яті переміщаються на жорсткий диск, таким чином звільняючи її. Це корисно в тому випадку, якщо кількість оперативної пам’яті строго обмежена.
Swap може бути створений як:
- Окремий розділ на диску
- Файл на диску
Ми ж з вами будемо створювати файл на диску.
Цікавим є той факт, що якщо у вас SSD диск, то швидкість буде тільки трохи нижча, ніж в оперативній пам’яті.
Підключаємося по SSH до свого облікового запису, і дивимося чи не створений випадково вже даний файл у вас:
swapon -sЯкщо ж файл підкачки створений, то результат буде таким::
[root@server]# swapon -s Filename Type Size Used Priority /var/swap.img file 1023992 30248 -1Якщо ні, то таким:
Swap: 0 0 0Як створити файл підкачки (swap) в Linux (Centos)
Переходимо в папку /var:
cd /varСтворюємо сам файл і надаємо права:
touch swap.img chmod 0600 swap.imgВибираємо розмір файлу підкачки.
Є думка, що файл підкачки повинен бути розміром як оперативна пам’ять, або ж перевищувати її в 2 рази. Тому, я буду створювати swap розміром оперативної пам’яті – 2 ГБ.
dd if=/dev/zero of=/var/swap.img bs=2048k count=1000Процес створення файлу ніяк не відображається, тому нам потрібно тільки чекати.
Після чого, ініціалізуємо swap командою mkswap:
mkswap /var/swap.imgВітаю! SWAP створено!
Включаємо:
swapon /var/swap.imgПеревіряємо:
swapon -sабо
freeДодаємо SWAP в fstab
Важливо знати, що файл підкачки буде працювати тільки до перезавантаження системи, після чого доведеться його заново включати. Давайте позбавимо себе від цих рутинних дій:
echo "/var/swap.img none swap sw 0 0" >> /etc/fstabабо
nano /etc/fstabі прописуємо рядок:
/var/swap.img none swap sw 0 0Тепер давайте задамо пріоритети використання пам’яті
Оскільки тепер в системі є фактично два варіанти оперативної пам’яті, нам потрібно задати параметри як її використовувати. Я хочу, щоб SWAP підключався в тому випадку, коли оперативна пам’ять переповнюється на 80%. Тому, робимо наступну команду:
sysctl -w vm.swappiness=20Як видалити Swap
Спочатку відключаємо:
sudo swapoff /var/swap.imgВидаляємо
sudo rm /var/swap.img