Предыстория
Несколько лет подряд, я парился на виртуальном хостинге с многими другими сайтами. Но вот не давно по некоторым соображениям, я решил переехать на виртуальный сервер. Естественно, что опыта в администрировании серверов у меня 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
Достойная статья. Спасибо.