Як звільнити місце на сервері VDS / VPS?

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

Чим небезпечне зайняте на 100% простір на сервері?

Багатьом може здатися, що при відсутності необхідності завантажувати на сервер нові дані, наявність вільного на ньому місця не обов'язково. Але це далеко не так. При нестачі місця на сервері (коли зайнято 100% з 100%), більшість його внутрішніх служб перестають нормально функціонувати. Причиною цього є неможливість створити тимчасовий файл для служби.

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

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

Основні ознаки / наслідки:

  • не працює авторизація на сайті;

  • на сайті не працює додавання файлів в кошик;

  • не працюють форми і немає можливості завантажити якийсь файл;

  • не створюються файли сесій;

  • недоступний сервер баз даних (можлива така сама ситуація з іншими службами);

  • пошкодилися таблиці баз даних;

  • наявність помилок, в яких зазначено «disk quota exceeded», «spaces are not allowed» або «can not create…" і т.п.

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

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

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

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

Які інструменти нам допоможуть виявити найбільші папки та файли?

 

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

 

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"  | 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

 

Висновок даної команди аналогічний 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

 

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

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


Замовляйте хостинг  и вибирайте домен в компанії «Хостинг Україна».

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

Будь тариф нашого хостингу підійде для Wordpress. Ви можете вибрати саме той пакет, який максимально відповідає потребам вашого проекту: SSD хостинг, VPS на SSD, Cloud (хмарний) хостинг, хмарний VPS. Виділений сервер або dedicated server.

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

Приєднуйтесь до «Хостинг Україна» і ми подбаємо про технічну сторону вашого бізнесу.