Контроллер LSI MegaRAID 9260-8i ограничен максимальной скоростью передачи данных 200 МБ / с. Сервер представляет собой HP DL180 G6 с CentOS 7 (64 бит), и мы тестируем диски SAS емкостью 4 ТБ (модель: WD4001FYYG). Контроллер использует iBBU08 (512 кэш). Мы протестировали включение / отключение кеша и прямой ввод-вывод, но это не решило проблему.
Согласно нашим тестам, при одновременной записи на два разных виртуальных диска (диск RAID10 с 6 дисками и диск RAID0 с одним диском) мы получаем макс. 200 МБ / с при чтении и макс. 200 МБ / с при записи.
Мы проверили, что производительность снижается при одновременной работе на другом диске, поскольку полоса пропускания (около 200 МБ / с) распределяется между разными независимыми операциями с дисками (узкое место).
Вывод:
Контроллер LSI ограничивает пропускную способность до 200 МБ / с.
Почему это происходит? Как это исправить? Может это быть связано с картой PCI? Можем ли мы измерить скорость передачи?
PS: Проблема была подана в запросе поддержки SR # P00117431, но мы перестали получать ответы от AVAGOTECH (ex-LSI) после отправки им подробной информации.
Спасибо
Это наши тесты ввода-вывода:
--- 1) Тест ввода-вывода одного привода ---
Написать тест:
# sync
# echo 3 > /proc/sys/vm/drop_caches
# dd if=/dev/zero of=/tmp/test bs=8k count=1M conv=fsync
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 46.7041 s, 184 MB/s
Прочитать тест:
# sync
# echo 3 > /proc/sys/vm/drop_caches
# dd if=/dev/zero of=/tmp/test bs=8k count=1M conv=fsync
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 47.1691 s, 182 MB/s
--- 2) Два диска, параллельные тесты ввода-вывода ---
Мы повторим предыдущий тест, но одновременно выполняем те же операции ввода-вывода на втором независимом диске. В результате тот же диск теперь выполняет только 50%, что доказывает, что операции ввода-вывода на втором диске (/ mnt / sdb / test) совместно используют некоторые ограниченные ресурсы на контроллере LSI.
Написать тест:
Процесс 1:
[root@hp ~]# sync
[root@hp ~]# echo 3 > /proc/sys/vm/drop_caches
[root@hp ~]# dd if=/dev/zero of=/tmp/test bs=8k count=1M conv=fsync
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 87.8613 s, 97.8 MB/s
Процесс 2:
[root@hp ~]# dd if=/dev/zero of=/mnt/sdb/test bs=8k count=1M conv=fsync
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 86.3504 s, 99.5 MB/s
Прочитать тест:
Процесс 1:
[root@hp ~]# dd if=/tmp/test of=/dev/null bs=8k count=1M
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 81.5574 s, 105 MB/s
Процесс 2:
[root@hp ~]# dd if=/mnt/sdb/test of=/dev/null bs=8k count=1M
1048576+0 records in
1048576+0 records out
8589934592 bytes (8.6 GB) copied, 84.2258 s, 102 MB/s
ну, здесь действительно недостаточно информации.
Во-первых, что это за диски? Поддерживаются ли модель и версия SAS?
Во-вторых, вы пишете в массив с другого диска или массива? Или запись и чтение в один и тот же массив? Если вы храните все это в одном массиве, то вы разделяете доступный ввод-вывод для самих дисков пополам (в лучшем случае) независимо от того, что SAS является полнодуплексным, если данные распределяются по одним и тем же дискам, а вы повторное чтение / запись каждого диска - свое собственное ограничение на то, что он может обрабатывать с точки зрения дисковых операций ...
Кроме того, если вы читаете или записываете туда и обратно с одного Raid0 на RAID10 ... тогда узким местом является единственный диск. Вы получите только максимальную скорость, с которой может справиться один привод. Которые кстати 200МB(1,6 гбs примерно) неплохо для одиночного HDD.
Это может легко произойти, потому что 4k-секторы на диске имеют размер 512e (вы не указали модель диска, так что это немного дикая догадка, но, учитывая, что это диск 4Tb, я бы сказал, что это Расширенный формат). Поэтому я бы проверил, знает ли ваша ОС о размере вашего сектора, если вы не хотите циклического чтения-изменения-записи. Это означает правильное выравнивание разделов и размер блока файловых систем, которые вы используете.
И да, нет такой вещи, как HP DL 180 G7
, gen6 был последним, затем модельный индекс изменился с 180.
На всякий случай там довольно приличные статья для вас (да, вы используете CentOS, но ... знаете, это в основном то же самое, когда дело касается внутреннего устройства).
Еще одна вещь, которую вы, вероятно, должны проверить и включить - это кеш записи контроллера, если у вас, конечно, BBU.
Возможно, вы достигли максимального числа операций ввода-вывода в секунду, обеспечиваемого вашей картой: с пакетами 8K запись / чтение со скоростью 200 МБ / с означает скорость около 25 000 операций ввода-вывода в секунду.
Можете ли вы повторить попытку с более крупными пакетами (например, используйте bs = 1M или аналогичный)? Это что-то меняет?