2

Мы только что приобрели новый RAID-массив с 24 дисками и RAID-контроллер LSI 9285-8e . Мы видим две вещи, которые кажутся нам странными.

  1. Скорость записи выше скорости чтения (с файловой системой ext4 или xfs).

  2. В скорости чтения есть ограничение, так что когда размер чтения (с dd) превышает 128 Кбайт, производительность падает примерно на 30%.

Вот последние результаты теста с размером полосы RAID 512k и файловой системой xfs :

dd bs=1024k if=junk of=/dev/null        => 9.11s = 1.4 GB/s
dd bs=512k if=junk of=/dev/null         => 9.38s = 1.3 GB/s
dd bs=256k if=junk of=/dev/null         => 9.78s = 1.3 GB/s
dd bs=128k if=junk of=/dev/null         => 7.03s = 1.8 GB/s
dd bs=64k if=junk of=/dev/null          => 6.77s = 1.9 GB/s
dd bs=32k if=junk of=/dev/null          => 6.79s = 1.9 GB/s
dd bs=16k if=junk of=/dev/null          => 6.49s = 1.9 GB/s
dd bs=8k if=junk of=/dev/null           => 6.91s = 1.8 GB/s
dd bs=4k if=junk of=/dev/null           => 6.46s = 1.9 GB/s

(К сведению, для всех размеров, указанных выше, скорость записи составляет 2,2 ГБ / с)

В настоящее время я использую RAID0, но у меня были почти идентичные результаты с RAID6.

Это просто новый устанавливаемый сервер. Никакие другие приложения не работают и нет сетевого подключения, вызывающего прерывания. Эта установка на OpenSuSE 11.4. Мы могли бы проводить тесты с произвольным чтением, но поскольку наша цель - потоковое видео (например, 4K 3D или 8K), нас действительно беспокоит только последовательное чтение.

Есть идеи как ускорить скорость чтения?

1 ответ1

1

Карта RAID (PDF) указана как имеющая более высокие скорости записи, чем скорости чтения, поэтому ничего необычного там не происходит. Я предполагаю, что 1 ГБ встроенной кэш-памяти используется в качестве буфера записи, чтобы помочь сгладить любые задержки поиска, вызванные относительно медленными жесткими дисками. Но при чтении вам, очевидно, всегда придется ждать, пока диски получат данные.

Что касается точки перегиба в скоростях чтения, это может быть связано с заполнением кэша где-то вдоль цепочки. Кэш-память Intel L2 второго уровня обычно составляет 256 кБ (на ядро), а кэш-память второго уровня большего размера (совместно используется ядрами). Предположим, что исполняемый файл dd и все остальное, что требуется ОС во время теста, составляет не менее одного байта и никогда не превышает 128 КБ. Это означает, что тесты размера блока 128 КБ (или меньше) в основном не зависят от ЦП, но производительность может быть значительно снижена для размера блока 256 КБ из-за задержки частых поисков в кэш-памяти (или основной памяти) L3. Это может быть совпадением, но оно соответствует вашим тестовым данным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .