Когда сервер на VPS или «железный» выделенный сервер работает под нагрузкой, производительность и срок службы дисков становятся критически важными. Для SSD накопителей особую роль играет команда TRIM: она позволяет ядру Linux уведомлять диск о том, какие блоки больше не используются и могут быть очищены. Это снижает износ памяти, ускоряет запись и предотвращает падение скорости работы со временем.
Многие администраторы знают о TRIM, но далеко не всегда он включён и корректно работает. Ниже рассмотрим, как пошагово проверить поддержку TRIM, включить его и убедиться, что система действительно передаёт команды диску.
Что такое TRIM и зачем он нужен
В отличие от HDD, у SSD есть особенность: чтобы записать данные в ячейку памяти, её нужно сначала очистить. Если система не сообщает диску, какие блоки уже не используются, накопитель вынужден выполнять лишние операции — и это замедляет работу.
Команда TRIM решает эту проблему: ядро Linux передаёт диску информацию о «свободных» блоках, и SSD может заранее их очистить. Польза от этого очевидна:
- скорость записи остаётся стабильной даже после долгого использования;
- снижается количество циклов перезаписи и продлевается срок службы;
- уменьшается вероятность «фризов» при интенсивной нагрузке на файловую систему.
Для серверов и VPS с высокими нагрузками TRIM — не опция, а необходимость.
Проверка поддержки TRIM
Первым делом нужно узнать, поддерживает ли ваш SSD эту функцию. Выполните команду:
hdparm -I /dev/sdX | grep "TRIM supported"
Где /dev/sdX — имя вашего диска (например, /dev/sda).
Если в выводе появится строка:
Data Set Management TRIM supported
Значит, диск поддерживает TRIM. Если рядом стоит символ *, то функция уже активна.
Включение TRIM для файловой системы
Чаще всего администраторы используют два способа:
Опция discard в /etc/fstab
Для постоянного включения TRIM добавьте в параметры монтирования раздела опцию discard.
Пример строки в /etc/fstab:
UUID=xxxx-xxxx / ext4 defaults,discard 0 1
После перезагрузки ядро будет автоматически отправлять команды TRIM при удалении файлов.
Периодический запуск fstrim
Если не хочется использовать discard (он может слегка замедлять операции удаления), лучше включить регулярный запуск команды fstrim.
Ручной запуск:
fstrim -v /
Для автоматизации можно включить systemd-таймер:
systemctl enable fstrim.timer
systemctl start fstrim.timer
По умолчанию он запускается раз в неделю, что является оптимальным вариантом для большинства серверов.
Тестирование работы TRIM
Чтобы убедиться, что TRIM действительно работает, можно выполнить проверку вручную:
Создайте тестовый файл:
dd if=/dev/urandom of=tempfile count=100 bs=512k oflag=direct
Узнайте его расположение на диске:
hdparm --fibmap tempfile
В выводе найдите значение Starting LBA address — это начальный сектор файла.
Прочитайте данные напрямую с диска:
hdparm --read-sector [ADDRESS] /dev/sdX
Где [ADDRESS] — найденный сектор).
Удалите файл и выполните синхронизацию:
rm tempfile
sync
Снова прочитайте данные с того же сектора:
hdparm --read-sector [ADDRESS] /dev/sdX
Если теперь выводятся только нули, значит TRIM работает корректно.
Полезные советы
- Если у вас сервер с SSD и RAID-контроллером, убедитесь, что он поддерживает передачу команд TRIM (не все модели это делают).
- На VPS-платформах TRIM иногда отключают на уровне гипервизора. В таких случаях уточните у хостера (например, в AdminVPS TRIM доступен на SSD-тарифах).
- Для систем с Btrfs и XFS лучше использовать fstrim, а не discard: это снижает нагрузку на диск.
- На старых ядрах Linux (до 3.7) поддержка TRIM может быть ограниченной.
Заключение
TRIM — ключевой механизм для стабильной работы SSD в Linux. Если он выключен, производительность диска постепенно падает, а износ увеличивается. Проверка и включение TRIM занимает всего несколько минут: достаточно прописать опцию discard или активировать fstrim.timer.
Для администраторов VPS это особенно важно: SSD здесь постоянно работают под нагрузкой, и грамотная настройка TRIM позволяет выжать из них максимум ресурса и стабильности.
Читайте в блоге:
- CI/CD на базе Ubuntu 24.04 LTS: GitHub Actions, Docker, NGINX
- Ansible с Ubuntu 24.04: быстрый старт автоматизации
- Ubuntu 24.04 LTS против 22.04: стоит ли обновляться