Создаём SWAP
На большенстве серверов файл подкачки (swap) создаётся автоматически, при установке системы. Под него выделяется отдельное место на диске. Но поскольку вебмастера чаще имеют дело с VPS, то если он не был создан хостером при создании VPS, возможности создать его отдельным разделом уже нет. Или это довольно сложно и не нужно. Удобно и достаточно создать swap-файл.
Делается это следующим образом:
dd if=/dev/zero of=/swapfile bs=1M count=1024
Эта команда создаст файл по адресу /swapfile объемом в 1 гб . Если же вы хотите создать подкачку большего объема, соответственно вам нужно в параметре count указать большее значение — например 2048 для создания свопа в 2 gb.
По завершении команда выдаст отчет о том что сколько-то данных было записано и с какой скоростью.
Теперь нужно этот файл инициализировать и подключить в качестве свопа.
chmod 0600 /swapfile
mkswap /swapfile
Теперь нужно прописать его в таблицу файловых систем, чтобы после перезагрузки сервера он подключался автоматически.
Для этого добавим строку в файл /etc/fstab такого содержания:
/swapfile swap swap defaults 0 0
В приниципе после перезагрузки у нас своп теперь появится. Но чтобы подключить его в первый раз сразу и без перезагрузки мы можем дать такую команду:
swapon -a
Эта команда перечитает файл /etc/fstab и подключит наш новый своп. Теперь можем смотреть в top, и увидим что он появился.
{reklama}
Меняем параметры ядра Linux, политику распределения памяти
Для этого открываем файл /etc/sysctl.conf и дописываем строки
vm.overcommit_ratio = 90
vm.overcommit_memory = 2
Если вы этого ещё не сделали.
Если же сделали ранее, то ваши параметры ещё не применились, поскольку нам нужно было создать своп сначала, чтобы не повесить систему. Дело в том, что здесь как и с файлом fstab — настройки будут подхватываться только при перезагрузке. Но дабы опять таки без оной обойтись, мы можем просто сказать:
sysctl -p
Эта команда перечитает файл sysctl.conf и принудительно задаст наши параметры из него, о чём и отрапортует после выполнения.
На этом всё. Теперь ни mysql, ни любой другой процесс не будет убиваться ядром при большем потреблении памяти. Своп мы создали в качестве страховки, он как бы дополняет и продолжает основную память системы, является используемым резервом.
Полное описание настройки и продолжение смотрите на сайте vpsadm.ru