- Автор темы
- Администратор
- Модер.
- #1
Рано или поздно каждый администратор VDS сталкивается с дисковыми проблемами: внезапно кончилось место (привет, разросшиеся логи!), «упал» IOPS, или нужно срочно переразтить разделы без потери данных. Работа в консоли виртуального сервера накладывает свои ограничения, поэтому под рукой всегда нужно иметь правильный софт.
В этой подборке мы собрали 10 незаменимых утилит для работы с дисковой подсистемой в Linux, которые спасут ваш сервер и сберегут нервы.
В этом случае используйте встроенную магию Linux для быстрого поиска виновника:
А если вам нужно мгновенно освободить место, никогда не удаляйте открытые логи командой rm (место не освободится, пока процесс держит файл). Вместо этого очищайте их обнулением:
А каков ваш дежурный набор утилит при работе с дисками на виртуальных машинах? Пользуетесь ли вы современным софтом на Rust/Go или доверяете только олдскульным утилитам? Рассказывайте в комментариях!
В этой подборке мы собрали 10 незаменимых утилит для работы с дисковой подсистемой в Linux, которые спасут ваш сервер и сберегут нервы.
Блок 1: Анализ свободного места и поиск «пожирателей» диска
1. ncdu (NCurses Disk Usage)
Классическая консольная утилита df -h показывает общую картину, но не говорит, какая именно папка сожрала всё пространство. Здесь на сцену выходит ncdu. Она сканирует выбранную директорию и выводит удобный псевдографический интерфейс, где папки отсортированы по размеру.- Для чего: Быстрый поиск и удаление «тяжелого» мусора прямо из интерфейса утилиты.
- Фишка: Работает неприхотливо и очень быстро даже по SSH.
2. duf (Disk Usage/Free Utility)
Современная, стильная и гораздо более информативная альтернатива стандартной df. Написана на Go.- Для чего: Оценка общего состояния дисков, точек монтирования и типов файловых систем.
- Фишка: Выводит данные в виде красивых цветных таблиц со шкалами заполненности (progress bars) и автоматически скрывает служебные виртуальные файловые системы, не перегружая экран.
3. dust
Еще один современный преемник старой доброй команды du, написанный на Rust.- Для чего: Визуализация структуры папок.
- Фишка: Выводит дерево каталогов, где размер каждой папки показан в процентах и снабжен графическим блоком. Идеально, чтобы за один взгляд понять архитектуру занятого пространства.
Блок 2: Мониторинг нагрузки и диагностика (IOPS/Пропускная способность)
4. iotop
Если ваш VDS начал жутко тормозить, а процессор при этом свободен, скорее всего, сервер уперся в лимиты дискового ввода-вывода (I/O). iotop — это аналог команды top, но для диска.- Для чего: Поиск конкретного процесса (например, «зависшего» скрипта или тяжелой базы данных), который насилует диск в данный момент.
- Фишка: Показывает скорость чтения/записи и процент времени (IO%), затраченный процессом на ожидание диска.
5. iostat (из пакета sysstat)
Инструмент для более глубокого и системного анализа производительности.- Для чего: Позволяет оценить среднюю нагрузку на дисковые устройства с момента загрузки системы или за определенный интервал времени.
- Фишка: Показывает критически важные метрики, такие как %util (процент времени, когда диск был занят работой) и await (среднее время ожидания выполнения запроса на чтение/запись). Если await исчисляется сотнями миллисекунд — у вашего хостера проблемы с хранилищем.
6. fio (Flexible I/O Tester)
Эталонный инструмент для бенчмаркинга. Если вы только что купили VDS и хотите проверить, соответствуют ли заявленные хостером IOPS реальности, используйте fio.- Для чего: Тестирование реальной скорости диска при симуляции различных типов нагрузок (последовательное чтение, случайная запись, глубина очереди и т.д.).
- Фишка: Общепризнанный стандарт в индустрии. Результатам тестирования fio сложно что-то противопоставить в споре с техподдержкой хостинга.
Блок 3: Управление разделами и файловыми системами
7. fdisk / cfdisk
Базовые инструменты для создания, удаления и изменения таблиц разделов.- Для чего: Разметка нового диска или расширение текущего (например, когда вы доплатили хостеру за дополнительные гигабайты).
- Фишка: Если fdisk требует ввода буквенных команд и может показаться сложным новичкам, то cfdisk предоставляет интуитивный интерактивный интерфейс прямо в консоли.
8. resize2fs (и сопутствующие xfs_growfs)
Утилиты низкого уровня для изменения размера самих файловых систем.- Для чего: Когда вы увеличили размер диска в панели хостера и расширили раздел в cfdisk, файловая система всё еще «думает», что она старого размера. resize2fs (для ext4) или xfs_growfs (для XFS) расширяют ФС на всё доступное пространство.
- Фишка: Современные Linux-системы позволяют делать это «на лету» (онлайн), без перезагрузки VDS и остановки сервисов.
9. lvextend / lvcreate (LVM — Logical Volume Manager)
Если ваш хостер разворачивает шаблоны ОС с использованием LVM, эти команды станут вашими лучшими друзьями.- Для чего: Управление логическими томами. Позволяет гибко «нарезать» дисковое пространство, объединять несколько виртуальных дисков в один или мгновенно выделять место под новые нужды.
- Фишка: Абстракция от физических дисков. С LVM администрирование становится по-настоящему гибким.
Блок 4: Проверка здоровья и реанимация
10. smartctl (из пакета smartmontools)
Важно для VDS: Стоит оговориться, что на виртуальных серверах (KVM/Hyper-V) прямой доступ к SMART-данным физического диска чаще всего закрыт гипервизором. Однако, если хостер использует "проброс" диска или вы администрируете выделенный сервер (Dedicated), эта утилита незаменима.
- Для чего: Мониторинг аппаратного здоровья накопителя (SSD/HDD), просмотр счетчиков ошибок и запуск тестов самодиагностики.
- Фишка: Позволяет вовремя заметить, что диск «умирает», и успеть перенести бэкапы до фатального сбоя.
Бонус-совет: Что делать, если диск забит на 100% и команды не работают?
Типичная ситуация: диск заполнился так, что утилиты автоматизации падают с ошибками, сессия SSH не может создать временный файл, а apt install ncdu выбивает ошибку.В этом случае используйте встроенную магию Linux для быстрого поиска виновника:
Bash:
du -h --max-depth=1 / | sort -hr
А если вам нужно мгновенно освободить место, никогда не удаляйте открытые логи командой rm (место не освободится, пока процесс держит файл). Вместо этого очищайте их обнулением:
Bash:
> /var/log/nginx/access.log
А каков ваш дежурный набор утилит при работе с дисками на виртуальных машинах? Пользуетесь ли вы современным софтом на Rust/Go или доверяете только олдскульным утилитам? Рассказывайте в комментариях!
