Мой вопрос в заголовке ... вот некоторые предыстории:
[ОС - это Linux.]
[ОБНОВИТЬ: Содержимое этого RAID0 является избыточным (синхронизируется из SCM). Меня не беспокоит повышенный риск потери данных.]
[ОБНОВЛЕНИЕ 2: Практически, я здесь скорее всего кослюсь. Но помимо попытки решить практическую проблему, я хочу улучшить / подтвердить свое понимание теоретических вопросов.]
У меня есть сервер автоматической сборки, который я использую для компиляции исходного кода очень большого проекта, и я хочу минимизировать время сборки. Я полагаю, что наилучшее возможное время сборки будет достигнуто, когда машина останется привязанной к ЦП в течение всего времени сборки (то есть все ядра загружены на 100%, все время). Это, конечно, идеализированная цель, которая может быть только достигнута. подошел асимптотически.
По поведению сборки (в основном, наблюдая за выводом mpstat) я могу сказать, что самым большим врагом моей цели является% iowait. Бывают случаи, когда я вижу незначительный% простоя и считаю, что это небольшой сбой планировщика ядра и / или небольшая неэффективность в способности Make распараллеливать сборку. Но обычно этого недостаточно, чтобы меня беспокоить. С другой стороны,% iowait довольно часто становится серьезно завышенным ... и загрузка моего процессора резко падает. Я считаю, что это обычно происходит, когда некоторые потоки пытаются связать (записать) большие библиотеки с (программно управляемым [*]) RAID0, в то время как другие потоки пытаются прочитать исходный код.
(Пожалуйста, проигнорируйте на данный момент тот факт, что я могу переместить выходные записи на другой том и контроллер, чем исходный код. Это запланировано.)
Я подумываю о переходе на SSD. Но в таком случае, думаю, лучше всего отказаться от программного RAID-массива [*] дисков. Моя интуиция такова: время доступа к твердотельным накопителям настолько быстрое, а время передачи настолько быстрое, что простой LVM из 4 твердотельных накопителей практически сведет мои% iowaits к нулю, а мои ядра будут постоянно привязаны, делая максимум количество полезной работы.
... В этом случае программный контроль над 4 твердотельными накопителями с RAID без нужды увеличит мой% sys, оставив меньше для% user. Мои ядра по-прежнему будут привязаны, но будет меньше «полезной» работы.
Верна ли моя интуиция в отношении твердотельных накопителей с программным RAID0 для этой конкретной цели?
[*] ДОПОЛНИТЕЛЬНЫЙ ВОПРОС: На материнской плате есть RAID-контроллер, но я понимаю, что это просто «поддельный RAID», обеспечивающий функции управления томами в дополнительном ПЗУ BIOS, но в остальном это просто программный RAID. Так что я им не пользуюсь. Но будет ли здесь полезен настоящий аппаратный RAID-контроллер? Понятно, что я могу довольно легко привязать свои ядра к этой машине; Я просто не могу это выдержать. Я считаю, что твердотельные накопители в основном решат эту проблему с выносливостью, и мне интересно, может ли даже настоящий аппаратный RAID-контроллер улучшить это.
Программный RAID под Linux на современном оборудовании - это нормально ... даже с SSD. Это не предъявляет огромных требований к вашим процессорам. В самом деле.
Черт возьми, с премией Твердотельные накопители Fusion-io, рекомендуемая и распространенная схема развертывания - использование программного RAID.
Я бы вообще не беспокоился об этом.
Также см: Нужны ли мне карты RAID Fusion-io?
Несмотря на то, что я принял ответ @ ewwhite выше, я хотел вернуться и сообщить о слегка противоречивом ответе, который я только что обнаружил в другом месте в Интернете, который основан на эмпирических данных:
Наши результаты тестирования показали увеличение числа операций чтения на 16% при использовании (2) твердотельных накопителей в массиве RAID 0 и снижение производительности записи на 2%. Прирост производительности от операций чтения достаточно существенный, чтобы гарантировать использование RAID 0 для большинства целей, но если вы запускаете приложение, которое выполняет больше операций записи, чем операций чтения, вы можете получить больше преимуществ от автономного использования дисков с данными вместо использования Вариант RAID 0.
(Мой RAID больше читает, чем пишет, поэтому ответ @ ewwhite по-прежнему подходит для моих нужд.)