Por que um SSD tem (muito) mb / s mais alto com profundidade de fila 32, então profundidade de fila 1?

3

Então, basicamente na aula (durante um curso de banco de dados) nós tivemos que instalar e executar o CrystalDiskMark e analisar os números.

A única coisa que eu não conseguia entender é o fato de que meu computador (usando um SSD) tinha um número maior de mb / s na profundidade da fila 32, então ele tinha a profundidade da fila 1.

Se não estou enganado, a profundidade da fila é a quantidade de tarefas que aguardam para serem processadas, onde 1 é tipicamente para um usuário normal, enquanto 32 é mais para um servidor.

Na profundidade da fila 1 de 4Kb, a leitura foi de 31,74 mb / s e a gravação de 24,13 mb / s. Na profundidade da fila de 4Kb 32, a leitura foi de 163,6 mb / s e a gravação de 60,68 mb / s.

Para ler mais de 5x e mais, então o dobro da escrita. Por que tem muito mais mb / s na profundidade da fila de 32? Eu pensei que seria mais alto em uma profundidade de fila

    
por user404666 05.01.2015 / 17:00

2 respostas

2

The most common queue depths to test are a Queue Depth of 1, which is typical of light consumer workloads, and a Queue Depth of 32, which is representative of a heavy workload as might be seen on a on a server (e.g. web server, database server, etc.). Where in that spectrum an SSD will perform best varies based on the drive’s firmware algorithm. Being optimized for high or low queue depths or vice versus is not necessarily a bad thing, but rather a design decision.

Fonte

Portanto, se a unidade que você está testando tiver sido otimizada para uso do servidor, ela poderá / deverá / deverá funcionar melhor com filas mais longas do que uma unidade com uma fila rasa (como uma unidade de desktop de baixo custo).

Lembre-se também de que o próprio controlador de unidade também desempenha um papel na maneira como o QD é tratado e com a profundidade de uma fila que pode ser acessada de uma só vez.

Mais informações sobre profundidade de fila e controladores de unidade

Um controlador de unidade decente pode determinar quais solicitações dependem de qual e qual tipo de solicitação é. Ele poderia então usar essa informação para decidir qual ordem os comandos passariam para a (s) unidade (s), otimizando assim a taxa de transferência.

Assim, em geral, o enfileiramento permite que o subsistema da unidade (SO, controlador, unidades, etc.) determine a ordem ideal para executar os comandos. Se a Profundidade da Fila for somente 1, ele tratará apenas com 1 comando em um tempo e essas otimizações não podem ser feitas.

    
por 05.01.2015 / 21:05
0

Eu não acho que essa pergunta tenha sido respondida, então aqui vai uma tentativa simples.

Os SSDs são mais rápidos em profundidades de fila mais altas por alguns motivos:

  1. Eles são criados com vários chips Flash. É simplista dizer que eles são RAID 0 dentro, mas é um pouco semelhante. Uma fila de solicitações pode ser atendida a partir de vários chips Flash ao mesmo tempo.

  2. O Flash é tão rápido que a latência entre responder a uma solicitação e obter uma nova solicitação é uma parte significativa do processo. Com um disco rígido que responde / a latência da solicitação é insignificante em comparação com o atraso rotacional e o tempo de busca da cabeça. Mas com um SSD essa espera é uma porcentagem muito maior. Ter uma fila de pedidos dá ao SSD mais trabalho para fazer depois de responder a um trabalho anterior.

por 30.04.2018 / 18:52