6.4.6 Як визначати скільки місця чи inode зайнято на сервері
Дисковий простір є критично важливим ресурсом для будь-якого сервера. Він визначає, скільки даних може зберігати та обробляти Ваша система. Ефективне керування дисковим простором є ключовим для забезпечення безперебійної роботи сервера.
У Linux-системах дисковий простір розподіляється не лише за обсягом даних, але й за кількістю файлів. Кожен файл або директорія пов’язані з унікальним ідентифікатором, який називається inode (індексний дескриптор). inode містить метадані про файл, такі як права доступу, власник, розмір та розташування на диску.
Важливо відзначити: вичерпання дискового простору чи inode може мати серйозні наслідки для функціонування Вашого сервера, сайтів та пошти.
Це може призвести до наступних наслідків:
-
Непрацездатність сайту та пошти: коли закінчується місце на диску, сайт може перестати працювати, оскільки неможливо записувати нові дані або логи.
-
Проблеми з базами даних: бази даних можуть перестати оновлюватися або взагалі відмовити в роботі.
-
Збої в роботі сервісів: системні сервіси можуть перестати функціонувати через неможливість записати логи або тимчасові файли.
-
Неможливість резервного копіювання: якщо на диску немає вільного місця, створення резервних копій стає неможливим.
-
Уповільнення роботи системи: навіть якщо система ще працює, нестача вільного місця може значно знизити її продуктивність. Або при спробах запису даних сервер бути зависати.
Регулярний моніторинг та своєчасне керування дисковим простором є критично важливими для забезпечення стабільної роботи Вашого сервера та сайтів.
Команди для аналізу дискового простору
Для користувачів, які мають доступ до панелі керування ISPManager, існує простий спосіб перевірки використання дискового простору без необхідності використання командного рядка. Але при цьому він меньше інформативний й не надасть Вам таку кількість інформації, яку Ви можете отримати при перевіркі через термінал SSH.
Детальну інструкцію щодо перевірки та керування дисковими квотами через панель ISPManager можна знайти в нашій статті.
Важливо: більшість з наведених команд потребують доступу рівня адміністратора root.
Перевірка зайнятого місця у відсотках
Для перевірки кількості зайнятого місця у відсотках, підключіться до сервера за допомогою SSH та виконайте наступну команду:
- df -h
Команда відображає загальний обсяг кожного розділу файлової системи, обсяг використаного і вільного місця, а також відсоток використаного простору. Вся інформація представлена в зручних для читання одиницях (KB
, MB
, GB
), що дозволяє легко оцінити стан дискової системи.
root@hostname ~ # df -h
Filesystem Size Used Avail Use% Mounted on
udev 956M 0 956M 0% /dev
tmpfs 198M 1.8M 196M 1% /run
/dev/vda1 40G 11G 29G 28% /
tmpfs 986M 0 986M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 986M 0 986M 0% /sys/fs/cgroup
Аналіз розміру директорій
Щоб побачити, скільки місця займають папки в кореневій директорії, використовуйте команду:
- du --si --max-depth=1
Ця команда показує розмір кожної піддиректорії від рівня доступу Вашого користувача.
За потреби Ви можете додати символ /
кінці команди, тим самим вся інформація по розміру буде виведене від кореневої папки сервера.
- du --si --max-depth=1 /
Додатково, Ви можете вказати шлях до необхідного каталога, якщо потрібно перевірити місце певного користувача чи сайту:
- du --si --max-depth=1 /var/www/user/data/www/example.com
При формуванні шляху потрібно вказувати логін Вашого користувача (user
) та назву сайту (example.com
). Шлях можна змінити, залишивши, наприклад, /var/www/user/data/
, тим самим Ви дізнаєтесь скільки займає інформаціє саме на цьому користувачі.
Пошук найбільших файлів
Для пошуку 10 найбільших файлів у системі:
- find / -type f -printf '%s %p\n' | sort -nr | head -10
Очищення кешу пакетного менеджера
Для систем Debian/Ubuntu:
- sudo apt-get clean
Для систем CentOS/AlmaLinux/RockyLinux:
- sudo yum clean all
Видалення старих файлів журналів
Щоб видалити файли журналів, старші за 7 днів:
- find /var/log -type f -mtime +7 -name "*.log" -delete
Команди для перевірки inode
Перевірка використання inode
Для перевірки кількості зайнятих inode у відсотках, виконайте:
- df -i
Ця команда надає набагато більше інформації, ніж просто перевірка зайнятих inode
. Вона відображає загальну кількість inode
на файловій системі, кількість використаних та вільних inode
, а також відсоток використаних. Це дозволяє отримати повне уявлення про стан файлової системи.
root@hostname ~ # df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 244521 395 244126 1% /dev
tmpfs 252323 684 251639 1% /run
/dev/vda1 2621440 242234 2379206 10% /
Підрахунок inode в конкретній директорії
Для підрахунку загальної кількості inode
у вказаній директорії та її піддиректоріях:
- find /var/www/user/data -type f | wc -l
Ви можете модифікувати цю команду, додавши наступні аргументи:
- -user
user
- виведе кількість inode, що належать вказаному користувачу, в нашому приклад логін користувачаusername
. Вам потрібно буде підставити свого користувача. - -group
group
- виведе кількість inode, що належать вказаній групі.
Наприклад:
- find /var/www/user/data -type f -user username | wc -l
Пошук директорій з найбільшою кількістю файлів
Щоб знайти директорії, які містять найбільшу кількість inode
, використовуйте:
- find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n
Додатково: на основі отриманої інформації Ви можете вжити наступних заходів для оптимізації використання дискового простору.
-
Видалення непотрібних файлів: регулярно очищуйте систему від тимчасових файлів, старих логів та невикористовуваних даних.
-
Архівація старих даних: стискайте та переміщуйте рідко використовувані файли на окремі носії для звільнення місця на основному диску.
-
Використання символічних посилань: створюйте символічні посилання замість дублювання файлів для економії як місця на диску, так і inode.
-
Налаштування квот: встановіть обмеження на використання дискового простору для користувачів та груп, щоб запобігти надмірному споживанню ресурсів.