%20%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%20%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0%20%D0%B4%D0%B8%D1%81%D0%BA%D0%B0%20(Debian%2FProxmox).png)
Краткое содержание
Я наблюдаю резкое колебание производительности ввода-вывода на зеркале ZFS SSD в Proxmox VE 7 (Bullseye). Я просто слишком новичок, чтобы отследить это самостоятельно.
Подробности
Это ОЧЕНЬ заметно плохая производительность в реальных задачах, так что это не просто искусственные бенчмарки. Но чтобы помочь диагностировать это, я запускаю:
sysbench fileio --file-test-mode=rndrw run
Он работает "на голом железе" с терминала Proxmox без активных виртуальных машин. Результаты сильно различаются. Вот два примера:
File operations:
reads/s: 2316.07
writes/s: 1544.08
fsyncs/s: 4949.70
Throughput:
read, MiB/s: 36.19
written, MiB/s: 24.13
General statistics:
total time: 10.0062s
total number of events: 88040
Latency (ms):
min: 0.00
avg: 0.11
max: 35.66
95th percentile: 0.65
sum: 9947.54
Threads fairness:
events (avg/stddev): 88040.0000/0.00
execution time (avg/stddev): 9.9475/0.00
и
File operations:
reads/s: 22.60
writes/s: 15.07
fsyncs/s: 56.98
Throughput:
read, MiB/s: 0.35
written, MiB/s: 0.24
General statistics:
total time: 10.6162s
total number of events: 877
Latency (ms):
min: 0.00
avg: 11.43
max: 340.62
95th percentile: 77.19
sum: 10020.19
Threads fairness:
events (avg/stddev): 877.0000/0.00
execution time (avg/stddev): 10.0202/0.00
Как видите, есть 10000-кратное колебание общего числа событий и колоссальное увеличение задержки. Эти колебания не "единоразовые". Они постоянно колеблются между этими крайностями.
Я сделал все возможное, чтобы попытаться сузить круг простых аппаратных проблем. Оба SSD совершенно новые, со всеми 100 в smartctl. Я поменял кабели SATA. Я запустил его с деградировавшим зеркалом, чтобы попытаться изолировать проблему с одним диском. Я переместил диски на отдельный контроллер SATA. Ничто не дает мне другого результата.
У меня есть второй сервер, настроенный аналогичным образом, хотя и со старыми (и несоответствующими) SSD в зеркале. Не вижу этой проблемы. Хотя аппаратное обеспечение сервера отличается. Плохие результаты получены с системы, описанной ниже. "Нормальные" кажущиеся результаты получены со старого переделанного ПК с E3-1275v2.
Я надеюсь на советы, которые помогут диагностировать эту проблему. Кажется, проблема в задержке. Что может быть причиной этого? Какие дальнейшие шаги мне следует предпринять?
Заранее спасибо!
Система (если это поможет)
- МБ: Supermicro X9DRi-F
- Процессор: Dual Xeon E5-2650 v2
- Оперативная память: 128 ГБ (8 x 16 ГБ)
- Контроллеры SATA: встроенный SATA 3 (отдельный SATA 2 также протестирован)
- SSD: 2x 1 ГБ TeamGroup SATA (да, дешево, но должно подойти)
- Карты PCIe:
- Мелланокс MCX312B
- LSI SAS9207-8i (HBA подключен к 8 несмонтированным дискам...пропущенным через VM)
- Nvidia GTX 750 (пропущено через VM)
решение1
Нечто подобное произошло вчера со мной с моей новой установкой: Proxmox VE 7 на Intel 11500 с 32 ГБ ОЗУ и 2x SSD Crucial BX500 (это потребительские товары), настроенные как зеркало ZFS.
Я сделал бенчмарк, dd
записав 1 ГБ нулей на SSD, и он работал на скорости 5 МБ/с (я знаю, что dd
это не очень хорошо для бенчмарка, но все же...). Во время бенчмарка iostat
было 100% загрузки. В моем случае я решил проблему производительности, обрезав SSD. Вы можете принудительно использовать его zpool trim rpool
, а можете включить автообрезку с помощью zpool set autotrim=on rpool
. После обрезки дисков я снова запустил бенчмарк, и он работал за 7 с (153 МБ/с).
В процессе поиска способа улучшения производительности я установил значение, xattr
рекомендованное sa
вПроксмокс викии я настроил zfs_arc_min
/ zfs_arc_max
и другие параметры ядра.
Надеюсь, это сработает и для вас.
решение2
Вам следует создать пул ZFS на SSD с ashift=12, чтобы выровнять его с 4096 секторами SSD.
Проверить текущее значение
zpool get all pool_name | grep ashift
Также проверьте выравнивание раздела до 1 МБ (2048 секторов по 512 байт)
решение3
ZFS — это файловая система с функцией копирования при записи. Это очень и очень плохо для дешевых SSD. Вы можете протестировать этот SSD на машине с Windows напрямую, выполнив безопасное стирание и выполнив полный тест записи (я думаю, что HD Tune справится с этим), и вы увидите, какова производительность этого SSD, когда у него заканчивается SLC \ RAM... она будет очень плохой... около 50-70 МБ/с вместо 500+ для SATA. Кроме того, некоторые дешевые SSD используют системную оперативную память вместо собственного модуля RAM или кэша SLC, и это плохо для ZFS. Надеюсь, эта помощь помогла решить похожую проблему, которая была решена путем замены SSD на 980 Pro (но меньший размер из-за стоимости).