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.
-
Настройка квот: установите ограничения на использование дискового пространства для пользователей и групп, чтобы предотвратить чрезмерное потребление ресурсов.