У меня проблемы с получением максимальной пропускной способности из моей установки. Аппаратное обеспечение выглядит следующим образом:
- двухъядерный четырехъядерный процессор AMD Opteron (tm) 2376
- 16 ГБ оперативной памяти DDR2 ECC
- два RAID-контроллера Adaptec 52245
- 48 SATA-накопителей емкостью 1 ТБ, настроенных как 2 массива RAID-6 (полоса 256 КБ) + резервные.
Програмное обеспечение :
- Простое ванильное ядро 2.6.32.25, скомпилированное для AMD-64, оптимизированное для NUMA; Пользователь Debian Lenny.
- запуск тестов: disktest, bonnie ++, dd и т. д. Все дают одинаковые результаты. Здесь нет расхождений.
- Используемый планировщик: noop. Да, здесь нет подвоха.
До сих пор я в основном считал, что чередование (RAID 0) нескольких физических устройств должно увеличивать производительность примерно линейно. Однако это не тот случай:
- Каждый RAID-массив обеспечивает около 780 МБ / с на запись, длительное и 1 ГБ / с чтение на постоянное.
- запись в оба RAID-массива одновременно с двумя разными процессами дает 750 + 750 МБ / с, а чтение из обоих - 1 + 1 ГБ / с.
- однако, когда я разделяю оба массива вместе, используя mdadm или lvm, производительность составляет около 850 МБ / с и 1,4 ГБ / с. по крайней мере, на 30% меньше, чем ожидалось!
- запуск двух параллельных процессов записи или чтения с полосатыми массивами не улучшает показатели, фактически снижает производительность еще больше.
Так что здесь происходит? По сути, я исключил конфликт шины или памяти, поскольку при одновременном запуске dd на обоих дисках совокупная скорость записи фактически достигает 1,5 ГБ / с, а скорость чтения достигает 2 ГБ / с.
Так что это не шина PCIe. Я полагаю, это не ОЗУ. Это не файловая система, потому что я получаю те же цифры, которые сравниваются с необработанным устройством или с использованием XFS. И я также получаю точно такую же производительность при использовании чередования LVM и чередования md.
Что не так? Что мешает процессу подняться до максимально возможной пропускной способности? Linux чередуется с ошибками? Какие еще тесты я могу запустить?
источник
striping
программа не могла работать с помощью многопоточного алгоритма. Поскольку вы используете программный RAID изmdadm
, я бы посоветовал вам взглянуть на источник.Ответы:
Вы пытались запустить latencytop во время тестов? может быть полезно узнать, какой системный вызов Linux является виновником (если есть).
источник
Насколько я могу судить, это карта x8 PICe Gen 1 - абсолютная максимальная скорость передачи данных, которую она может поддерживать, составляет 2 ГБ / с при нулевой нагрузке. Сами Adaptec утверждают, что карты в лучшем случае могут поддерживать скорость 1,2 Гбайт / с, а вы превышаете это.
Я предполагаю, что, поскольку вы в состоянии значительно превзойти заявленную производительность с двумя наборами RAID 0, независимо действующими как дополнительная нагрузка, небольшая и все, что может быть, это чередование увеличивает нагрузку на ЦП RAID или подсистему ОЗУ на загружается контроллер, при Гбайт / сек.
источник