Eu tenho um SSD Samsung 960 Pro 512 GB no NVMe com o PCIe Gen.3x4 em execução. Eu uso o driver Samsung NVMe 2.0.0.1607. O SSD está funcionando bem. No entanto, não entendo por que a escrita de 4k é mais rápida que a leitura de 4k. Estou usando o AS Benchmark:
É um fator de 3! Há algo de errado (com o meu sistema ou o AS Benchmark) ou isso é normal?
ssd
performance
musbach
fonte
fonte
Respostas:
As leituras em 4K serão a coisa mais difícil que a unidade pode fazer. Eles estão entre os menores tamanhos de bloco com os quais o inversor poderá lidar, e não há como pré-carregar grandes quantidades de dados; na verdade, eles provavelmente são ineficientes se a lógica de carga antecipada da unidade pretender ler qualquer coisa maior que 4kb.
É mais provável que as leituras de unidade "Normal" sejam maiores que 4kb, pois há muito poucos arquivos muito pequenos e até mesmo o arquivo de paginação é lido em partes grandes, pois seria estranho que um programa tivesse "apenas" 4KB de memória paginada. Isso significa que qualquer pré-carregamento que a unidade tente fazer realmente penalizará a taxa de transferência da unidade.
As leituras em 4K podem passar pelo buffer da unidade, mas a parte "aleatória" do teste as torna totalmente imprevisíveis. O controlador não saberá quando a unidade precisará das leituras "grandes" mais comuns novamente.
As gravações em 4K, por outro lado, podem ser armazenadas em buffer, enfileiradas e gravadas sequencialmente de maneira eficiente. O buffer da unidade pode executar grande parte do trabalho de captura e gravação para o qual foi projetado, e o nivelador de desgaste pode até alocar todas essas gravações em 4K no mesmo bloco de apagamento da unidade, transformando ocasionalmente o que é uma gravação "aleatória" em 4K algo mais próximo de uma gravação seqüencial.
Na verdade, eu suspeito que isso é o que está acontecendo nas gravações "4K-64Thrd", o "64-Thrd" aparentemente está usando uma grande profundidade de fila , sinalizando para a unidade que possui uma grande quantidade de dados para ler ou gravar . Isso aciona muitos agrupamentos de gravações e, portanto, se aproxima da velocidade de gravação sequencial da unidade. Ainda há uma sobrecarga na execução de uma gravação em 4K, mas agora você está expondo completamente o potencial do buffer. Na versão de leitura do teste, o controlador do inversor, agora reconhecendo que está sob uma carga pesada muito constante, para de pré-carregar dados, possivelmente evita o buffer e alterna para o modo de leitura "bruto", aproximando-se novamente da velocidade de leitura sequencial.
Basicamente, o controlador da unidade pode fazer algo para tornar a gravação em 4K mais eficiente, especialmente se um cluster chegar em um momento semelhante, enquanto não pode fazer nada para tornar um único 4K mais eficiente, especialmente se estiver tentando otimizar fluxo de dados pré-carregando dados no cache.
fonte
Outras respostas já explicaram por que a escrita é mais rápida que a leitura; Gostaria de acrescentar que, para esta unidade, isso é absolutamente normal, pois é confirmado pelos benchmarks que você pode encontrar nas análises.
Opinião de ArsTecnica
A ArsTechnica revisou a unidade, sua versão (512 GB) e a de 2 TB:
(Este gráfico não é imediatamente visível na resenha, é o quinto na primeira galeria, você deve clicar nele)
O desempenho desses dois modelos é muito semelhante e seus números se parecem com os seus: a unidade pode ler a 37 MB / se escrever em 151 MB / s.
Opinião de AnandTech
A AnandTech também revisou a unidade: eles usaram o modelo de 2 TB, calculando a média dos resultados dos testes com uma profundidade de fila de 1, 2 e 4. Estes são os gráficos:
A unidade lê em 137 MB / se escreve em 437 MB / s. O número é muito maior que o seu, mas provavelmente é devido às profundidades da fila mais altas. De qualquer forma, a velocidade de gravação é 3 vezes a velocidade de leitura, como no seu caso.
Revisão do PC World
Mais uma análise da PC World : eles testaram a versão de 1 TB e os resultados para 4K são 30 MB / s para leitura e 155 MB / s para gravação: a velocidade de gravação está alinhada com a sua, mas aqui está a unidade. ainda mais lento na leitura. O resultado é que a proporção é de cinco para um, não de três para um.
Conclusão
As análises confirmam que, para esta unidade, é normal que a velocidade de gravação para 4K aleatório seja muito mais rápida que a velocidade de leitura: dependendo do teste, pode ser até 5 vezes mais rápida.
Sua unidade está bem. Não há motivo para acreditar que esteja com defeito ou que seu sistema esteja com um problema.
fonte
O controlador SSD armazena em cache as gravações na NVRAM integrada e a libera para a mídia flash em momentos oportunos. A latência de gravação é, portanto, a latência de acesso ao cache, geralmente 20us. As leituras, pelo contrário, são veiculadas na mídia, com tempo de acesso de 120 a 150us, na melhor das hipóteses.
fonte
Para expandir a resposta de Andrey, você precisa observar as despesas gerais envolvidas antes que o SSD possa sinalizar ao computador que a operação está concluída.
Para uma gravação, os dados devem ser meramente gravados em um cache interno da RAM. Posteriormente, ele será gravado na memória flash, juntamente com outros blocos de 4k e metadados necessários para verificar, corrigir erros e localizá-los.
Para uma leitura, o SSD deve primeiro localizar os dados. O local que o computador deseja ler é chamado de endereço lógico e não possui um relacionamento direto com o local físico dos dados na memória flash. O SSD converte o endereço lógico em um físico, com base na geometria da memória flash (a maneira como as células são organizadas), remapeamento incorreto de blocos, nivelamento de desgaste e vários outros fatores. Em seguida, é necessário aguardar o término de qualquer outra operação antes de recuperar os dados do flash, verificá-los e, se necessário, reler e aplicar a correção de erros, possivelmente até reescrever o bloco inteiro em outro lugar.
Embora o tempo total gasto por uma operação de gravação possa ser maior que uma operação de leitura típica, o tempo gasto para o SSD relatar que a operação foi concluída na medida em que ele pode processar comandos adicionais é menor. Com blocos grandes, a sobrecarga não é o fator limitante, mas com muitos blocos pequenos, ele começa a limitar a velocidade de leitura / gravação.
fonte