В этой короткой заметке парочка команд для включения trim в Proxmox VE на SSD дисках с файловой системой ZFS
Столкнулся с такой проблемой, что виртуальная машина в Proxmox VE работающая на SSD и файловой системой ZFS стала работать медленно. Замерил скорость и получил такое:
На первый взгляд все хорошо, но я помню раньше было лучше. Начал искать и нашел.
“Trim” – это команда, которая используется для оптимизации производительности SSD (твердотельного накопителя). Когда вы удаляете файл с SSD, операционная система помечает пространство, занимаемое этим файлом, как доступное для записи. Однако на самом деле данные не удаляются сразу, а остаются на диске до тех пор, пока новые данные не перезапишут их.
Команда Trim позволяет SSD уведомлять операционную систему о том, что определенные блоки данных больше не используются и могут быть безопасно очищены. Это помогает улучшить производительность SSD, поскольку диск может заранее подготовить блоки для записи новых данных, не тратя время на очистку блоков во время операции записи.
Таким образом, использование Trim помогает продлить срок службы SSD и поддерживать его производительность на высоком уровне.
Разработчики Proxmox заложили выполнение команды TRIM в ZFS раз в месяц
root@pve22:~# cat /etc/cron.d/zfsutils-linux
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# TRIM the first Sunday of every month.
24 0 1-7 * * root if [ $(date +\%w) -eq 0 ] && [ -x /usr/lib/zfs-linux/trim ]; then /usr/lib/zfs-linux/trim; fi
# Scrub the second Sunday of every month.
24 0 8-14 * * root if [ $(date +\%w) -eq 0 ] && [ -x /usr/lib/zfs-linux/scrub ]; then /usr/lib/zfs-linux/scrub; fi
Это очень редко на мой взгляд и нужно это решать.
Первым делом нужно вручную запустить команду trim на пуле rpool. Если у вас название другое у пула, то подставьте свое.
zpool trim rpool
Что бы постоянно этого не делать нужно установить автоматический trim. Для начала проверим какой установлен на данный момент
root@pve22:~# zpool get autotrim rpool
NAME PROPERTY VALUE SOURCE
rpool autotrim off default
Теперь установим автоматический режим
zpool set autotrim=on rpool
Проверим что получилось
root@pve22:~# zpool get autotrim rpool
NAME PROPERTY VALUE SOURCE
rpool autotrim on local
Вот какой результат показал тест в виртуальной машине через час
Я думаю теперь понятно, что в Proxmox с SSD дисками и ZFS нужно обязательно включать и выполнять команду trim