Як звільнити дисковий простір на сервері VDS/VPS

post thumbnail

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

Чим загрожує зайнятий на 100% простір на сервері?

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

Основні ознаки і наслідки того, що на сервері немає вільного місця:

  • не працює авторизація на сайті;
  • не створюються файли сесій;
  • на сайті не працює додавання товарів в корзину, не працюють форми і немає можливості завантажити якийсь файл;
  • недоступний сервер баз даних, можлива такаж ситуація і з іншими службами;
  • пошкодилися таблиці баз даних;
  • всі помилки, в яких зазначено «disk quota exceeded», «spaces are not allowed» або «can not create» і т.д.

Як не допустити, щоб місце на сервері закінчилося

Як і в будь-який інший ситуації, краще не допустити проблему, а ніж усувати її наслідки, які бувають вкрай неприємні і в деяких випадках практично непоправні, наприклад, пошкоджені таблиці InnoDB. Тому дуже важливо своєчасно проводити очищення сервера від непотрібних файлів.

Якщо ви вже є нашим клієнтом і у вас є акаунт з послугою VPS, ви могли помітити, що ми передбачили виникнення ситуації з нестачею місця. Як тільки на сервері залишається мало вільного простору, власнику послуги приходить відповідне повідомлення на контактну поштову скриньку від нашої системи моніторингу. Для тих, кому стежити за повідомленнями на пошті не зовсім зручно, а про те, що відбувається з сервером, хотілося б знати максимально швидко – у нас є зручне рішення з Telegram-ботом.

Що займає все місце на диску?

Якщо на сервері закінчилося або закінчується місце, і ми знаємо про це – це вже половина вирішення або запобігання проблеми. Тепер нам потрібно зрозуміти, що саме на сервері займає місце, і на основі цього видалити непотрібні файли або ж прийти до висновку, що використовуваного тарифу мало, і потрібно перейти на наступний з більшим обсягом дискового простору. Розглянемо основні інструменти (bash-команди), які нам допоможуть знайти найбільші файли і папки. Для використання цих команд потрібно підключитися до сервера по SSH. Щоб мати доступ до всіх файлів сервера потрібно підключатися під користувачем root (root-пароль до VPS відправляється на контактну поштову скриньку при замовленні послуги).

Перша потрібна нам команда:

<meta charset="utf-8">df -h

Звільнити місце на сервері | Wiki HostPro

Орієнтуватися треба на / – кореневий розділ, в прикладі це рядок:

/dev/vda1 25G 20G 3,9G 84% /

З цього рядка ми бачимо, що на сервері всього 25 ГБ і з яких зайнято 20 ГБ (84%) і вільно 3,9 ГБ. Вивід команди заокруглений до гігабайту, тому сума зайнятого (25G) і вільного (3,9G) місця може не збігатися з повним розміром диска (25G). Всі інші розділи в прикладі – це системні віртуальні розділи.

Перевірити розмір файлу або директорії (папки), в прикладі каталог /var/log/, можна командою:

du -sh /var/log/

Звільнити місце на сервері | Wiki HostPro

Наступний набір команд допоможе зрозуміти, які каталоги займають найбільше простору:

cd / 
du -sh * | sort -h

Команди для каталогів | Wiki HostPro

За аналогією можемо зайти в потрібний каталог і дізнатися розмір директорій і файлів в ньому:

Команди для каталогів | Wiki HostPro

Наступна комбінація команд видалить всі архіви старих логів сервера:

find /var/log/ -name "*gz" | xargs -i rm {}

Пошук 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

Перевірити іноди на сервері | Wiki HostPro

Результат виконання даної команди подібний до df -h.

Максимально можливе число Inodes залежить від файлової системи і від розміру диска. Як правило, їх більш ніж достатньо, але трапляються такі випадки, коли Inodes закінчуються швидше дискового простору.

Три основні причини такої ситуації:

  1. Кеш-файли сайтів – якщо сайт регулярно створює свій кеш і при цьому не видаляє старий, ви можете досягти ліміту по інодам. Дана ситуація пояснюється тим, що кеш-файли являють собою дуже велику кількість маленьких за розміром файлів.
  2. Не налаштовано автоматичне видалення файлів сесій вашого движку. Сесії також являють собою файли практично нульового розміру, а при достатній відвідуваності ресурсу їх може накопичитися дуже багато.
  3. Поштова черга сервера – якщо з якоїсь причини у вас на сервері не працює відправка пошти, а листи тільки накопичуються в черзі, швидше за все ви також зіткнетеся з лімітом Inodes. У більшості випадків причина такої ситуації – злом сервера і розсилка з нього спаму.

Наступні дві команди допоможуть дізнатися кількість зайнятих індексних дескрипторів в поточному каталозі і підкаталогах:

find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -nr | head -n 10

for i in *; do echo $i; find $i |wc -l; done

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

Висновок

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

Швидкий VPS в Україні

Захист від DDoS-атак. Моніторинг VPS в Telegram. Гарантовані ресурси KVM

Telegram Hostpro

Наш телеграм

з важливими анонсами, розіграшами й мемами

Приєднатися

Можливо, вас зацікавить

Як отримати доступ по SSH?

Як отримати доступ по SSH?

SSH (Secure SHell – безпечна оболонка) – це мережевий протокол, який використовується для безпечного...

Diana Honcharenko | Оновлено: 04.03.2024

Як самостійно перейти на вищий тариф VPS 

Як самостійно перейти на вищий тариф VPS 

Нещодавно ми додали функціонал для самостійної зміни тарифу віртуального сервера. Діє він у межах...

Diana Honcharenko | Оновлено: 22.12.2023

Як додати на сервер NVMe-диск

Як додати на сервер NVMe-диск

Наші нові швидкі VPS тарифи вже включають в себе NVMe-диски. Оберіть свій потужний VPS...

Viktoriya Mazur | Оновлено: 22.06.2021

Як створити віртуальний сервер?

Як створити віртуальний сервер?

«Як створити віртуальний сервер?» – часте питання, що виникає у багатьох користувачів, які вперше...

Diana Honcharenko | Оновлено: 01.10.2020