Назад | Перейти на главную страницу

Какую пропускную способность PCI-E может использовать мой жесткий диск SAS?

Примечание. Этот вопрос является реальным, но, чтобы проанализировать его, обратите внимание, что я начал с «теоретической» отправной точки возможностей устройства и шины, которые, как я признаю, обычно не являются репрезентативными для используемой полосы пропускания.

У меня есть массив из 18 x SAS3, смешанных 8 ТБ и 10 ТБ корпоративных дисков, настроенных как 6 наборов 3-сторонних зеркал под ZFS (FreeBSD). В настоящее время все они подвешены на одном 24-портовом HBA (9305-24i).

Трудно сказать, сколько дисков работают на пике вместе, но если предположить, что все они использовались для чтения, я получаю следующий расчет наихудшего случая (может быть, нереалистично?):

Пропускная способность симплексного протокола SAS3: (12 Гбит / с) x (кодировка 8/10) = 1,2 ГБ / с макс.
=> 18 x максимум SAS3 в пике: (1,2 x 18) = 21,6 ГБ / сек
А вот односторонняя пропускная способность PCI-E 3.0 x 8: 7,9 ГБ / сек

Итак, на первый взгляд, кажется, что массив может быть очень сильно ограничен по запросу, потому что ссылка ограничивает ввод-вывод массива с 21,6 ГБ / сек до 7,9 ГБ / сек в каждую сторону: потеря 64% возможностей ввода-вывода жесткого диска.

С другой стороны, файловый сервер в основном используется двумя конечными пользователями: сам файловый сервер, который должен читать и писать с максимальной скоростью как часть обработки файлов, и любые другие устройства, которые связаны через 10 GbE и, следовательно, не могут потреблять симплекс более 2 ГБ / сек даже при 2-канальной агрегации. Следовательно, потенциально он в любом случае не может использовать больше, чем часть скорости канала PCI-E.

(Даже если я немного управляю файлами на самом сервере через SSH, 2 ГБ / сек все еще достаточно хорошая скорость, и я не могу жаловаться.)

Кроме того, независимо от того, что SAS 3 может предоставить теоретически, 12 Гбит = 1,2 ГБ / с и даже при максимальном чтении из внутреннего кеша, маловероятно, что корпоративный жесткий диск может использовать полосу пропускания SAS. SSD да, но HDD? Менее вероятно? Максимальный объем чтения обычно указывается в таблицах как 200–300 ГБ / сек.

Поэтому мой вопросУчитывая, что HBA может обеспечить пропускную способность почти 8 ГБ / с по PCI-E, а конечные пользователи могут потреблять не более 2 ГБ / с, действительно ли будет эффект дросселирования?

Другими словами, имеет ли значение, что дисковый массив теоретически дросселируется с 22 ГБ / сек до 8 ГБ / сек в слоте PCIE, учитывая, что конечные пользователи имеют агрегированное соединение 2 ГБ / сек? Или ограничение слота PCI-E по-прежнему будет проблемой, потому что локальная система иногда требует более быстрого ввода-вывода, чем можно предположить по пропускной способности конечного устройства?

Если есть ограничение, я могу разделить диски на 2 HBA, но я хотел бы получить представление о том, как оценить, есть ли реальная проблема, прежде чем жертвовать вторым слотом PCIE, чтобы поднять планку необработанного ввода-вывода диска.

Ах, вы когда-нибудь удосужились уйти от теоретических чисел? Вы так хорошо заявляете ...

18 x SAS3 максимум при пике: (1,2 x 18) = 21,6 ГБ / с

Да. Теперь покажите мне один жесткий диск (и вы говорите о жестком диске), который может доставить достаточно данных, чтобы фактически заполнить его канал SAS3. Подсказка: кеш - это не диск.

Ваша аргументация рушится, когда вы смотрите на реальные числа данных, которые могут обрабатывать жесткие диски.

Цитата из Максимальная пропускная способность SAS дискового стека?

Таким образом, один жесткий диск SAS 10K имеет ≈140 операций ввода-вывода в секунду. С блоком 8 КБ это будет всего 8 * 140 = 1120 КБ / с пропускной способности.

Повернув это x18, вы получите колоссальные 20160 Кбит / с. Округлено 20 МБ. Это 0,1% вашей пропускной способности.

Есть причина, по которой SAS достаточно хорош для работы с сотнями дисков.

Теперь, когда вы добавляете SSD в микс, это ДЕЙСТВИТЕЛЬНО меняется, и да, тогда вы, скорее всего, отключите SAS. С ОДНИМ SSD. Вот почему в форм-факторе U.2 на самом деле используются каналы PCIe на каждый твердотельный накопитель, и есть корпуса, которые обрабатывают 24 из них.

Но пока вы не говорите о SSD, вы в основном игнорируете тот факт, что пропускная способность уровня протокола (который стандартизирован) абсолютно не имеет значения, потому что ваши конечные устройства не способны даже приблизиться к тому, чтобы начать насыщать это.

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