
Eu tenho um SSD Samsung 960 Pro 512 GB em NVMe com PCIe Gen.3x4 em execução. Eu uso o driver Samsung NVMe 2.0.0.1607. O SSD está funcionando bem. Porém, não entendo porque a escrita de 4k é mais rápida que a leitura de 4k. Estou usando o AS Benchmark:
É um fator de 3! Há algo errado (com meu sistema ou AS Benchmark) ou isso é normal?
Responder1
As leituras de 4k serão a coisa mais difícil que a unidade pode fazer. Eles estão entre os menores tamanhos de bloco que a unidade será capaz de suportar e não há como a unidade pré-carregar grandes quantidades de dados; na verdade, eles são provavelmente bastante ineficientes se a lógica de carregamento antecipado da unidade pretende ler qualquer coisa maior que 4kb.
É mais provável que as leituras de unidade "normais" sejam maiores que 4kb, pois há poucos arquivos tão pequenos, e até mesmo o arquivo de paginação provavelmente será lido em grandes pedaços, pois seria estranho para um programa ter "apenas" 4 KB de memória paginados. Isso significa que qualquer pré-carregamento que a unidade tente fazer penalizará, na verdade, o rendimento da unidade.
As leituras de 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 poderá precisar das leituras "grandes" mais usuais 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 fazer grande parte do trabalho de captura e gravação para o qual foi projetado, e o nivelador de desgaste pode até alocar todas as gravações de 4K no mesmo bloco de apagamento da unidade, ocasionalmente transformando o que é uma gravação "aleatória" de 4K em algo mais próximo de uma gravação sequencial.
Na verdade eu suspeito que é isso que está acontecendo nas gravações "4K-64Thrd", o "64-Thrd" éaparentemente usando uma grande profundidade de fila, sinalizando assim para a unidade que ela possui uma grande quantidade de dados para ler ou gravar. Isso desencadeia muitos agrupamentos de gravações e, portanto, aproxima-se 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 totalmente o potencial do buffer. Na versão de leitura do teste, o controlador da unidade, agora reconhecendo que está sob carga pesada muito constante, interrompe o pré-carregamento de dados, possivelmente evita o buffer e, em vez disso, muda para um modo de leitura "bruto", aproximando-se novamente da velocidade de leitura sequencial.
Basicamente, o controlador de drive pode fazeralgopara tornar a gravação em 4K mais eficiente, especialmente se um grupo deles chegar em um horário semelhante, embora não possa fazer nada para tornar umsolteiroLeitura 4K mais eficiente, especialmente se estiver tentando otimizar o fluxo de dados pré-carregando dados no cache.
Responder2
Outras respostas já explicaram por que escrever é mais rápido que ler; Gostaria de acrescentar que para esta unidade isso é absolutamente normal, pois é confirmado por benchmarks que você pode encontrar nas análises.
Avaliação da ArsTecnica
ArsTechnicaanalisou a unidade, tanto a sua versão (512 GB) quanto a de 2 TB:
(Este gráfico não é imediatamente visível na review, é o 5º da primeira galeria, tem que clicar nele)
O desempenho desses 2 modelos é muito semelhante, e seus números são parecidos com os seus: o drive pode ler a 37 MB/s e escrever a 151 MB/s.
Avaliação da AnandTech
AnandTechtambém revisou o drive: eles usaram o modelo de 2 TB, calculando a média dos resultados dos testes com profundidade de fila de 1, 2 e 4. Estes são os gráficos:
A unidade lê a 137 MB/s e grava a 437 MB/s. O número é muito maior que o seu, mas provavelmente se deve à maior profundidade da fila. De qualquer forma, a velocidade de gravação é 3 vezes a velocidade de leitura, como no seu caso.
Análise da PC World
Mais uma resenha, porMundo dos PCs: 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 o drive é ainda mais lento na leitura. O resultado é que a proporção é de cinco para um, e não de três para um.
Conclusão
As análises confirmam que para esta unidade é normal que a velocidade de gravação em 4K aleatório seja muito mais rápida que a velocidade de leitura: dependendo do teste, pode até ser 5 vezes mais rápida.
Sua unidade está bem. Não há razão para acreditar que esteja com defeito ou que seu sistema esteja com problemas.
Responder3
O controlador SSD armazena em cache as gravações na NVRAM integrada e as libera na mídia flash em momentos oportunos. A latência de gravação é, portanto, a latência de acesso ao cache, normalmente 20us. As leituras, ao contrário, são veiculadas fora da mídia, com tempo de acesso de 120-150us, na melhor das hipóteses.
Responder4
Expandindo a resposta de Andrey, você precisa observar a sobrecarga envolvida antes que o SSD possa sinalizar ao computador que a operação foi concluída.
Para uma gravação, os dados devem apenas ser gravados em um cache RAM interno. Posteriormente, ele será gravado na memória flash, junto com outros blocos de 4k e metadados necessários para verificar, corrigir erros e localizá-lo.
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 tem relação direta com o local físico dos dados na memória flash. O SSD traduz o endereço lógico em um endereço físico, com base na geometria da memória flash (a forma como as células são organizadas), no remapeamento de blocos defeituosos, no nivelamento de desgaste e em vários outros fatores. Em seguida, ele tem que esperar que qualquer outra operação termine antes de recuperar os dados do flash, verificá-los e, se necessário, reler e aplicar a correção de erros, possivelmente até mesmo reescrever o bloco inteiro em outro lugar.
Embora o tempo total necessário para uma operação de gravação possa ser maior do que uma operação de leitura típica, o tempo necessário para o SSD relatar que a operação foi concluída, na medida em que pode processar comandos adicionais, é menor. Com blocos grandes a sobrecarga não é o fator limitante, mas com muitos blocos pequenos começa a limitar a velocidade de leitura/gravação.