Есть ли способ получить задержки очереди чтения / записи с устройств NVMe? Если он не разделен для чтения / записи, это лучше, чем ничего, но в идеале я мог бы видеть их отдельно.
Я бы хотел опуститься ниже обычного уровня миллисекунды и пока ничего не нашел.
У NVMe есть страницы журнала, и единственное, что вам нужно, находится на странице журнала 02h, на ней есть следующие фрагменты информации:
Таким образом, вы можете взять количество команд чтения и записи хоста и разделить их на время занятости контроллера, если вы сделаете это с относительно короткими интервалами и вычтите текущее значение из предыдущего значения, вы получите среднее время выполнения команды за это время. интервал. Не очень, но достаточно близко.
Если вы работаете в Linux, вы можете использовать команду nvme-cli для получения этих данных.
Вышеупомянутая внутренняя задержка, если вам нужна сквозная задержка, вы должны измерить ее самостоятельно в своем приложении. У вас есть аналогичный механизм в / proc / diskstats в Linux, который показывает количество команд и среднее время их занятости.