Как освободить место на сервере VDS/VPS
В этой статье мы рассмотрим довольно распространенную причину сбоев в работе сервера, которую можно легко избежать. Как уже понятно из названия, речь пойдёт о ситуации, когда на сервере закончилось свободное пространство и нужно понять, какая информация занимает всё место и нужна ли очистка на сервере.
Чем грозит занятое на 100% место на сервере?
Ответ на этот вопрос довольно прост, но не все сразу могут понять всю суть проблемы. На первый взгляд может показаться, что если мы не планируем загружать на сервер новые данные, то отсутствие на нём свободного места ничем не грозит, но это не так. Работа сервера, его служб и размещенных на нем сайтов напрямую зависит от возможности работать с файлами. А при отсутствии свободного места сервер не может вносить изменения в файлы, то есть не может полноценно работать.
Основные признаки и последствия того, что на сервере нет свободного места:
- не работает авторизация на сайте;
- не создаются файлы сессий;
- на сайте не работает добавление товаров в корзину, не работают формы и нет возможности загрузить какой-либо файл;
- недоступен сервер баз данных, возможна та же ситуация с другими службами;
- повредились таблицы баз данных;
- все ошибки, в которых указано «disk quota exceeded», «spaces are not allowed» или «can not create» и т.п.
Как не допустить, чтобы место на сервере закончилось
Как и в любой другой ситуации, лучше не допускать проблему, чем устранять её последствия, которые бывают крайне неприятны и в некоторых случаях практически неисправимы, к примеру, повреждённые таблицы InnoDB. Поэтому очень важно своевременно производить очистку сервера от ненужных файлов.
Если вы уже являетесь нашим клиентом и у вас есть аккаунт с услугой VPS, вы могли заметить, что мы предусмотрели возникновение ситуации с нехваткой места. Как только на сервере остаётся мало свободного пространства, владельцу услуги приходит соответствующее уведомление на контактный почтовый ящик от нашей системы мониторинга. Для тех, кому следить за уведомлениями на почту не совсем удобно, а о том, что происходит с сервером, хотелось бы знать максимально быстро — у нас есть удобное решение с Telegram-ботом.
Что занимает все место на диске?
Если на сервере закончилось или заканчивается место, и мы знаем об этом — это уже половина решения или предотвращения проблемы. Теперь нам нужно понять, что на сервере занимает место, и на основе этого удалить ненужные файлы или же прийти к выводу, что используемого тарифа не достаточно и нужно перейти на следующий с большим количеством дискового пространства. Рассмотрим основные инструменты (bash-команды), которые помогут нам найти самые большие файлы и папки. Для использования данных команд нужно подключиться к серверу по SSH, чтобы иметь доступ до всех файлов сервера нужно подключаться под пользователем root (root пароль к VPS серверу отправляется на контактный почтовый ящик при заказе услуги). Первая нужная нам команда:
df -h
Ориентироваться нужно на / — корневой раздел, в примере это строка:
/dev/vda1 25G 20G 3,9G 84% /
С данной строки мы видим, что на сервере всего 25G из которых занято 20G (84%) и свободно 3,9G. Вывод команды округлен до гигабайта, по этому сума занятого (25G) и свободного (3,9G) места может не совпадать с полным размером диска (25G). Все остальные разделы в примере это системные виртуальные разделы.
Проверить размер файла или директории (папки) в примере каталог /var/log/, можно командой:
du -sh /var/log/
Следующий набор команд поможет понять, какие каталоги занимают больше всего места:
cd /
du -sh * | sort -h
По аналогии можем зайти в нужный каталог и узнать размер директорий и файлов в нём:
Следующая комбинация команд удалит все архивы старых логов сервера:
find /var/log/ -name "*gz" -delete
Поиск 10 самых больших файлов на сервере:
find / -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk '{printf "%10d MB\t%s\n",($7/1024)/1024,$NF}'
Выполнение этого поиска может занять много времени, причем чем больше на сервере размер диска или количество файлов — тем дольше будет идти поиск.
Удалить какой-либо файл или каталог можно командой:
rm -rf /backup/backup_20_03_2019.tar.gz
Где /backup/backup_20_03_2019.tar.gz путь к файлу, что мы удаляем.
Если мы обнаружили, что какой-то log-файл занимает много места — его нужно очистить, именно очистить — удалять файлы, в которые пишутся логи нельзя. Очистить файл можно командой:
> /var/log/nginx/access.log
Где /var/log/nginx/access.log — это путь к файлу, который мы хотим очистить.
Большинство выше указанных команд будут актуальны и для услуг общего хостинга и помогут освободить место на хостинге.
Так же стоит обратить внимания, что работа сервера полностью зависит от ваших действий, поэтому нужно все команды выполнять внимательно и удалять что-либо только с полной уверенностью, что это не нужно для дальнейшей работы.
Inodes — индексные дескрипторы
Для UNIX-систем также актуально такое понятие как индексный дескриптор, или просто Inodes. По факту это количество файлов и директорий сервера. Детальней про них можно почитать тут. Inodes тоже могут заканчиваться. Узнать количество Inodes можно командой:
df -i
Вывод данной команды аналогичен df -h.
Максимально возможное число Inodes зависит от файловой системы и от размера диска. Как правило, их более чем достаточно, но случаются такие случаи, когда Inodes заканчиваются быстрее дискового пространства. Три основные причины такой ситуации:
- Кеш-файлы сайтов — если сайт регулярно создаёт свой кэш и при этом не удаляет старый, вы можете достигнуть лимита по инодам. Данная ситуация объясняется тем, что кэш-файлы представляют собой очень большое количество маленьких по размеру файлов.
- Не настроена автоочистка файлов сессий вашего движка. Сессии также представляют собой файлы практически нулевого размера, а при достаточной посещаемости ресурса их может накопиться очень много.
- Почтовая очередь сервера — если по какой то причине у вас на сервере не работает отправка почты, а письма только скапливаются в очереди, скорее всего вы также столкнётесь с лимитом Inodes. В большинстве случаев причина такой ситуации — взлом сервера и рассылка с него спама.
Следующая команда поможет узнать количество занятых индексных дескрипторов:
du -s --inodes * | sort -n
Выполнение этой команды тоже может занять продолжительное время при большом объеме диска или количестве файлов.
Важно! Советуем не удалять и не очищать файлы, о которых вы ничего не знаете. Сервер может работать нормально до первой перезагрузки, однако, если эти файлы окажутся системными, это может привести к проблемам со службами или же сервер может уже не запуститься.
Вывод
Немного разобравшись в теме, видим что совсем не сложно следить за работой своего сервера, а точнее за его дисковым пространством, и тем самым избежать его временной недоступности или некорректной работы сайтов или куда более серьёзных проблем. Если же вопросы всё ещё остались, вы всегда можете обратиться в нашу поддержку, где опытные специалисты помогут разобраться со всеми вопросами.
Быстрый VPS в Украине
Защита от DDoS-атак. Мониторинг VPS в Telegram. Гарантированные ресурсы KVM
Возможно, вас заинтересует
Как настроить SSH сервер на Windows
SSH (Secure Shell) – это сетевой протокол, который предоставляет безопасный доступ к удаленным системам...
Обновлено: 06.11.2024
|Как получить доступ по SSH?
SSH (Secure SHell – безопасная оболочка) – это сетевой протокол, используемый для безопасного удаленного...
Обновлено: 04.03.2024
|Как добавить на сервер NVMe диск
Наши новые быстрые VPS тарифы уже включают в себя NVMe-диски. Выберите свой мощный VPS...
Обновлено: 22.06.2021
|
Наш телеграм
с важными анонсами, розыгрышами и мемами
Присоединиться