6.4.6 Как определять сколько места или inode занято на сервере

Банер

Дисковое пространство является критически важным ресурсом для любого сервера. Оно определяет, сколько данных может хранить и обрабатывать Ваша система. Эффективное управление дисковым пространством является ключевым для обеспечения бесперебойной работы сервера.

В Linux-системах дисковое пространство распределяется не только по объему данных, но и по количеству файлов. Каждый файл или директория связаны с уникальным идентификатором, который называется inode (индексный дескриптор). inode содержит метаданные о файле, такие как права доступа, владелец, размер и расположение на диске.

Важно отметить: исчерпание дискового пространства или inode может иметь серьезные последствия для функционирования Вашего сервера, сайтов и почты.

Это может привести к следующим последствиям:
  1. Неработоспособность сайта и почты: когда заканчивается место на диске, сайт может перестать работать, поскольку невозможно записывать новые данные или логи.

  2. Проблемы с базами данных: базы данных могут перестать обновляться или вообще отказать в работе.

  3. Сбои в работе сервисов: системные сервисы могут перестать функционировать из-за невозможности записать логи или временные файлы.

  4. Невозможность резервного копирования: если на диске нет свободного места, создание резервных копий становится невозможным.

  5. Замедление работы системы: даже если система еще работает, нехватка свободного места может значительно снизить ее производительность. Или при попытках записи данных сервер будет зависать.

Регулярный мониторинг и своевременное управление дисковым пространством критически важны для обеспечения стабильной работы Вашего сервера и сайтов.

Команды для анализа дискового пространства

Для пользователей, имеющих доступ к панели управления ISPManager, существует простой способ проверки использования дискового пространства без необходимости использования командной строки. Но при этом он менее информативен и не предоставит Вам такое количество информации, которое Вы можете получить при проверке через терминал SSH.

Подробную инструкцию по проверке и управлению дисковыми квотами через панель ISPManager можно найти в нашей статье.

Важно: большинство из приведенных команд требуют доступа уровня администратора root.

Проверка занятого места в процентах

Для проверки количества занятого места в процентах, подключитесь к серверу с помощью SSH и выполните следующую команду:

  1. df -h

Команда отображает общий объем каждого раздела файловой системы, объем использованного и свободного места, а также процент использованного пространства. Вся информация представлена в удобных для чтения единицах (KB, MB, GB), что позволяет легко оценить состояние дисковой системы.

Пример выполнения команды df -h
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

Анализ размера директорий

Чтобы увидеть, сколько места занимают папки в корневой директории, используйте команду:

  1. du --si --max-depth=1

Эта команда показывает размер каждой поддиректории от уровня доступа пользователя. При необходимости Вы можете добавить символ / конце команды, тем самым вся информация по размеру будет выведена от корневой папки сервера.

  1. du --si --max-depth=1 /

Дополнительно, Вы можете указать путь к необходимому каталогу, если нужно проверить место определенного пользователя или сайта:

Проверка размера сайта
  1. du --si --max-depth=1 /var/www/user/data/www/example.com

При формировании пути нужно указывать логин Вашего пользователя (user) и название сайта (example.com). Путь можно изменить, оставив, например, /var/www/user/data/, тем самым Вы узнаете, сколько занимает информация именно на этом пользователе.

Поиск самых больших файлов

Для поиска 10 самых больших файлов в системе:

  1. find / -type f -printf '%s %p\n' | sort -nr | head -10

Очистка кэша пакетного менеджера

Для систем Debian/Ubuntu:

  1. sudo apt-get clean

Для систем CentOS/AlmaLinux/RockyLinux:

  1. sudo yum clean all

Удаление старых файлов журналов

Чтобы удалить файлы журналов, старше 7 дней:

  1. find /var/log -type f -mtime +7 -name "*.log" -delete

Команды для проверки inode

Проверка использования inode

Для проверки количества занятых inode в процентах, выполните:

  1. df -i

Эта команда предоставляет гораздо больше информации, чем просто проверка занятых inode. Она отображает общее количество inode на файловой системе, количество использованных и свободных inode, а также процент использованных. Это позволяет получить полное представление о состоянии файловой системы.

Пример выполнения команды df -i:
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 в указанной директории и ее поддиректориях:

  1. find /var/www/user/data -type f | wc -l

Вы можете модифицировать эту команду, добавив следующие аргументы:

  • -user user - выведет количество inode, принадлежащих указанному пользователю, в нашем примере логин пользователя username. Вам нужно будет подставить своего пользователя.
  • -group group - выведет количество inode, принадлежащих указанной группе.

Например:

  1. find /var/www/user/data -type f -user username | wc -l

Поиск директорий с наибольшим количеством файлов

Чтобы найти директории, содержащие наибольшее количество inode, используйте:

  1. find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n

Дополнительно: на основе полученной информации Вы можете предпринять следующие меры для оптимизации использования дискового пространства.

  1. Удаление ненужных файлов: регулярно очищайте систему от временных файлов, старых логов и неиспользуемых данных.

  2. Архивация старых данных: сжимайте и перемещайте редко используемые файлы на отдельные носители для освобождения места на основном диске.

  3. Использование символических ссылок: создавайте символические ссылки вместо дублирования файлов для экономии как места на диске, так и inode.

  4. Настройка квот: установите ограничения на использование дискового пространства для пользователей и групп, чтобы предотвратить чрезмерное потребление ресурсов.