Minha pergunta está no título ... aqui está um resumo:
[OS é o Linux.]
[ UPDATE: O conteúdo deste RAID0 é redundante (sincronizado com o SCM). Não estou preocupado com o aumento do risco de perda de dados.]
[ UPDATE 2: Praticamente, provavelmente estou dividindo os cabelos aqui. Mas além de tentar resolver um problema prático, estou querendo melhorar / confirmar minha compreensão do teórico.]
Eu tenho um servidor de compilação automatizado que eu uso para compilar o código-fonte de um projeto muito grande e estou procurando minimizar meus tempos de compilação. Eu acho que os melhores tempos de construção possíveis acontecerão quando a máquina permanecer ligada à CPU por toda a duração da construção (ou seja, todos os núcleos carregados a 100%, o tempo todo). Essa é uma meta idealizada que só pode ser abordou assintoticamente.
Eu posso dizer pelo comportamento da compilação (principalmente, observar a saída do mpstat) que o maior inimigo do meu objetivo é% iowait. Há momentos em que vejo um% ocioso não desprezível, e considero uma falha modesta do agendador do kernel e / ou pequenas ineficiências na capacidade do Make de paralelizar a construção. Mas isso geralmente não é grande o suficiente para me preocupar. Por outro lado, o% iowait freqüentemente se torna seriamente superdimensionado ... e minha carga de CPU cai drasticamente. Acredito que isso geralmente acontece quando alguns threads tentam vincular (gravar) grandes bibliotecas ao (RAID0 controlado por software) enquanto outros threads tentam ler código-fonte.
(Por favor, ignore no momento o fato de que posso mover a saída para um controlador de volume e controle diferente do código-fonte. Isso é planejado.)
Estou pensando em mudar para SSDs. Mas, nesse caso, acho que provavelmente é melhor abandonar o software RAIDing [*] das unidades. Minha intuição é: os tempos de acesso dos SSDs são tão rápidos, e os tempos de transferência são tão rápidos, que um simples LVM de 4 SSDs irá esmagar meus% iowaits para quase nada, e meus núcleos serão constantemente indexados, fazendo o máximo quantidade de trabalho útil.
... Nesse caso, o controle de software de 4 SSDs RAID aumentaria desnecessariamente meu% sys, deixando menos para% usuário. Meus núcleos ainda estariam atrelados, mas haveria menos trabalho "útil" sendo feito.
A minha intuição sobre SSDs de software RAID0'ing está correta, para esse objetivo específico?
[*] PERGUNTA DE BÔNUS: Há um controlador RAID na placa-mãe, mas eu entendo que ele é apenas 'falso RAID', fornecendo funções de gerenciamento de volume dentro da ROM de opção do BIOS, mas apenas RAID de software. Então eu não uso. Mas seria um verdadeiro controlador RAID de hardware útil mesmo aqui? Está claro que posso prender meus núcleos facilmente nesta máquina; Eu simplesmente não posso sustentar isso. Acredito que os SSDs resolverão principalmente esse problema de resistência, e me pergunto se mesmo um controlador RAID de hardware real pode melhorar isso.