Monitoramento de latência NVMe

4

Existe uma maneira de obter latências de filas de leitura / gravação de dispositivos NVMe? Se não for dividido para leitura / gravação, melhor do que nada, mas idealmente eu poderia ver isso separadamente.

Eu gostaria de ir abaixo do nível usual de milissegundos e não encontrei nada até agora.

    
por Zoltan 01.03.2017 / 20:50

1 resposta

4

O NVMe tem páginas de registro e a única coisa perto do que você quer é encontrada na página de registro 02h, ele tem as seguintes informações:

  • Data Units Read
  • Unidades de dados escritas
  • Comandos de leitura do host
  • Comandos de gravação do host
  • Tempo de Ocupação do Controlador

Assim, você pode obter o número de comandos de leitura e gravação do host e dividi-los com o tempo de ocupação do controlador, se fizer isso em intervalos relativamente curtos e subtrair o valor atual do valor anterior, obterá o tempo médio de um comando nesse intervalo de tempo. Não é bonita, mas perto o suficiente.

Se você estiver no Linux, você pode usar o comando nvme-cli para obter esses dados.

O que precede é tudo sobre latência interna; se você quiser uma latência de ponta a ponta, terá que medi-la em seu próprio aplicativo. Você tem um mecanismo similar em / proc / diskstats no Linux que mostra o número de comandos e o "tempo ocupado" deles na média.

    
por 19.11.2017 / 14:16

Tags