Qual é o impacto no desempenho de desativar o NCQ?

3

Nosso sistema de cluster é executado atualmente no CentOS7 com SSDs e NCQ desativados. Que tipo de queda de desempenho é esperada em um cenário de uso pesado de I / O?

Não estou com uma resposta precisa porque sei que depende muito da aplicação, do hardware e da rede, mas apenas uma ideia seria ótima.

    
por Sam 11.04.2016 / 15:07

3 respostas

4

O NCQ está aqui para reorganizar a operação de leitura / gravação enfileirada para minimizar a procura de cabeças, maximizando o desempenho. Um bom benchmark com discos mecânicos e NCQ pode ser encontrado em aqui

No entanto, ao contrário do Commond Belive, o NCQ é ainda mais importante para os SSDs. A razão é que, enquanto eles não têm cabeças, devido ao seu enfileiramento de comandos de latência muito baixa tornam-se realmente críticos para extrair o máximo desempenho.

Pense nisso: se o AHCI tivesse apenas uma única fila de 32 entradas, o NVMe teria 64k filas com 64k entradas cada.

    
por 11.04.2016 / 17:27
3

O NCQ é uma tecnologia que permite a reordenação da ordem na qual as solicitações de leitura e gravação são atendidas.

Os SSDs economizam o tempo de busca pelo qual os discos rígidos são afetados, mas ler e escrever em um dado NAND não é especialmente rápido. Os SSDs contornam isso lendo e gravando em vários NAND em paralelo.

Para conseguir isso, os SSDs dependem de três tipos de estratégias: Para grandes pedidos de E / S, divida a solicitação em vários dados, dividindo-os e gravando partes dos dados para separar os dados em paralelo. Para leituras, espera-se que os dados também sejam divididos entre os moldes e possam ser lidos de volta em paralelo.

Para pequenas cargas de gravação de E / S, os SSDs geralmente armazenam um monte deles na memória interna e escrevem todos os dados nativos em diferentes NAND em paralelo. É por isso que os SSDs podem ter um desempenho de gravação aleatório tão alto.

Para pequenas leituras de E / S ou cargas de trabalho mistas, o SSD atenderá a solicitação na fila de comandos fora de ordem, tentando manter o maior número possível de NANDs trabalhando em paralelo. O SSD só pode fazer isso se o NCQ estiver ativado. Isso pode fazer uma enorme diferença em cargas de trabalho pesadas de IO. Para a AHCI eu já vi até 10x de diferença, e para NVMe mais de 100x.

Se você já viu benchmarks de um SSD a partir de um aplicativo de benchmarking como o CrystalDiskMark ou similar, você pode ver que eles geralmente fornecem 4k resultados de leitura aleatória, com e sem profundidade de fila. Se o NCQ estiver desativado, a diferença entre esses dois números é pequena, com o NCQ habilitado é enorme. Por exemplo, esta análise Bit-tech , coloque os resultados de leitura aleatória do QD1 4k para o Samsung 950 PRO 512GB (um drive NVMe) a 60MB / s, mas os resultados de leitura aleatória do QD32 4k para o mesmo drive são 1261 MB / s.

    
por 11.04.2016 / 21:47
0

O NCQ ajuda o disco a reorganizar as operações de leitura / gravação para favorecer a velocidade. Com o objetivo de menos movimentos de cabeça. Caso você esteja usando um SSD em vez de um disco magnético giratório, o ganho de velocidade do NCQs será menos perceptível.

    
por 11.04.2016 / 16:16