Неравномерная нагрузка 2 дисков в 1 группе объема

У нас есть сервер приложений с 2 Fusion io SSD, помещенные в одну группу объема, формирующую один единственный объем. В этом объеме существует 128 файлов 40 ГБ, к которым каждый получил доступ через карту распределения памяти.

При изучении iostat мы нашли рабочую нагрузку не равномерно распределенной по обоим дискам. Различие составляет 25%.

Каковы могли быть возможные причины этой проблемы? Как я должен исследовать такую проблему?

>lsblk
NAME                      MAJ:MIN RM   SIZE RO MOUNTPOINT
...
fioa                      253:0    0   2.9T  0
└─instvg-instant (dm-17)  252:17   0   5.8T  0 /instant
fiob                      253:16   0   2.9T  0
└─instvg-instant (dm-17)  252:17   0   5.8T  0 /instant

>iostat -xk -d fioa -d fiob
Linux 3.0.101-0.47.52-default (...)        08/10/2015      _x86_64_

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
fioa              0.00     0.00 1295.05 3116.02 65326.45 16359.80    37.04     0.29    0.07   0.01   3.82
fiob              0.00     0.00 1847.35 4090.05 88087.96 21608.44    36.95     0.42    0.02   0.01   5.98
1
задан 10 August 2015 в 19:03
1 ответ

Мне нужен вывод lvs -o +devices,segtype, чтобы подтвердить это, но моя лучшая догадка в том, что вы только что линейно распределили LV по обоим PV. Это плохая идея с точки зрения балансировки нагрузки, потому что файловая система будет стремиться заполняться от начала до конца, а первая половина файловой системы находится на одном PV, а вторая половина - на другом PV. Итак, пока файловая система не будет наполовину заполнена, практически все входы/выходы будут идти на первую PV.

Чтобы это исправить, LV нужно создать в виде полосатого тома, а не линейного . Это можно сделать с помощью -i 2, переданной в lvcreate. Преобразование LV в полосатое возможно, но только в том случае, если у вас есть куча свободного места, которого у вас здесь, похоже, нет. Это позволит чередовать куски LV на обеих PV, так что (например) первые 8KiB данных будут на первой PV, следующие 8KiB на второй PV, следующие 8KiB обратно на первой PV, и так далее.

Учитывая это, ваш профиль ввода/вывода не является ужасным вне баланса. Вы никогда не получите идентичных входов/выходов на обоих PV, просто потому, что запросы к PV не будут идеально сбалансированы.

.
0
ответ дан 4 December 2019 в 07:17

Теги

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