Экстремальное замедление ZFS после нескольких месяцев

У меня есть сервер общего назначения, обеспечивая почту, DNS, сеть, базы данных и некоторые другие сервисы для многих пользователей.

Это имеет Xeon E3-1275 на уровне 3,40 ГГц, 16 ГБ RAM ECC. Выполнение ядра Linux 4.2.3, с ZFS-Linux 0.6.5.3.

Структура диска 2x диски емкостью Seagate ST32000641AS 2 и 1x Samsung 840 Pro SSD на 256 ГБ

У меня есть 2 HDs в зеркале RAID-1, и SSD действует как кэш и устройство журналирования, все управляемые в ZFS.

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

Теперь, я замечаю экстремальное замедление, особенно в файловой системе, содержащей все maildirs. Выполнение ночного резервного копирования принимает 90 минут для всего лишь 46 ГБ почты. Иногда, резервное копирование вызывает такую экстремальную нагрузку, что система почти безразлична в течение максимум 6 часов.

Я работал zpool iostat zroot (мое объединение называют zroot) во время этого замедления и замеченных записей на порядке 100-200kbytes/sec. Нет никаких очевидных ошибок IO, диск, кажется, особенно не упорно работает, но читать, является почти неприменимо медленным.

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

Мое идущее подозрение - это: Я использую zfs-auto-snapshot для создания прокручивающихся снимков каждой файловой системы. Это создает 15-минутный, каждый час, ежедневно, и ежемесячно создает снимки и имеет в наличии определенное число каждого, удаляя самое старое. Это означает, что со временем, тысячи снимков были созданы и уничтожены в каждой файловой системе. Это - единственная продолжающаяся операция уровня файловой системы, о которой я могу думать с кумулятивным эффектом. Я попытался уничтожить все снимки (но поддерживал процесс в рабочем состоянии, создавая новые), и не заметили изменения.

Существует ли проблема с постоянным созданием и уничтожением снимков? Я нахожу наличие их чрезвычайно ценным инструментом и велся полагать, что они (кроме дискового пространства) более или менее стоившие за нуль.

Есть ли что-то еще, что может вызывать эту проблему?

Команда Править: производится

Вывод zpool list:

NAME    SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
zroot  1.81T   282G  1.54T         -    22%    15%  1.00x  ONLINE  -

Вывод zfs list:

NAME             USED  AVAIL  REFER  MOUNTPOINT
zroot            282G  1.48T  3.55G  /
zroot/abs       18.4M  1.48T  18.4M  /var/abs
zroot/bkup      6.33G  1.48T  1.07G  /bkup
zroot/home       126G  1.48T   121G  /home
zroot/incoming  43.1G  1.48T  38.4G  /incoming
zroot/mail      49.1G  1.48T  45.3G  /mail
zroot/mailman   2.01G  1.48T  1.66G  /var/lib/mailman
zroot/moin       180M  1.48T   113M  /usr/share/moin
zroot/mysql     21.7G  1.48T  16.1G  /var/lib/mysql
zroot/postgres  9.11G  1.48T  1.06G  /var/lib/postgres
zroot/site       126M  1.48T   125M  /site
zroot/var       17.6G  1.48T  2.97G  legacy

Это не очень занятая система в целом. Пики на графике ниже являются ночными резервными копиями:

IO statistics

Мне удалось поймать систему во время замедления (начинающий приблизительно 8 этим утром). Некоторые операции являются довольно быстро реагирующими, но среднее число загрузки в настоящее время равняется 145, и zpool list просто зависает. График:

/dev/sdb latency

8
задан 10 February 2016 в 21:19
1 ответ

Посмотрите на arc_meta_used и arc_meta_limit. С большим количеством маленьких файлов вы можете заполнить кеш метаданных в оперативной памяти, чтобы он смотрел на диск в поисках информации о файлах и мог замедлить мир до ползания.

Я не знаю, как это сделать в Linux, у меня есть опыт работы с FreeBSD.

1
ответ дан 2 December 2019 в 23:09

Теги

Похожие вопросы