Назад | Перейти на главную страницу

Мониторинг задержки NVMe

Есть ли способ получить задержки очереди чтения / записи с устройств NVMe? Если он не разделен для чтения / записи, это лучше, чем ничего, но в идеале я мог бы видеть их отдельно.

Я бы хотел опуститься ниже обычного уровня миллисекунды и пока ничего не нашел.

У NVMe есть страницы журнала, и единственное, что вам нужно, находится на странице журнала 02h, на ней есть следующие фрагменты информации:

  • Считанные единицы данных
  • Записанные единицы данных
  • Команды чтения хоста
  • Команды записи хоста
  • Время занятости контроллера

Таким образом, вы можете взять количество команд чтения и записи хоста и разделить их на время занятости контроллера, если вы сделаете это с относительно короткими интервалами и вычтите текущее значение из предыдущего значения, вы получите среднее время выполнения команды за это время. интервал. Не очень, но достаточно близко.

Если вы работаете в Linux, вы можете использовать команду nvme-cli для получения этих данных.

Вышеупомянутая внутренняя задержка, если вам нужна сквозная задержка, вы должны измерить ее самостоятельно в своем приложении. У вас есть аналогичный механизм в / proc / diskstats в Linux, который показывает количество команд и среднее время их занятости.