Как заставить инструмент blktrace показывать действие, выданное D

Этот вопрос касается инструмента blktrace. На нескольких машинах с Ubuntu 3.16.0 в нашей лаборатории мне нужно отследить производительность программного и аппаратного блока ввода-вывода. Иногда мы используем наш собственный драйвер nvme, а иногда и стандартный. Вот выдержка из вывода blkparse (со стандартным драйвером nvme):

259,0    2   189505     9.997188463  8160  Q   R 126875648 + 248 [fio]
259,0    2   189506     9.997191290  8160  Q   R 126875896 + 8 [fio]
259,0    2   189507     9.997215574  8160  Q   R 363057152 + 248 [fio]
259,0    2   189508     9.997218444  8160  Q   R 363057400 + 8 [fio]
259,0    2   189509     9.997219210  8160  C   R 216536568 + 8 [0]
259,0    2   189510     9.997220497  8160  C   R 126875896 + 8 [0]
259,0    2   189511     9.997230160  8160  C   R 363057400 + 8 [0]
259,0    2   189512     9.997248050  8160  Q   R 147316736 + 248 [fio]
259,0    2   189513     9.997250930  8160  Q   R 147316984 + 8 [fio]
259,0    2   189514     9.997277161     0  C   R 147316984 + 8 [0]

Это показывает действия Queued и Complete, но не D-выданные действия, которые меня интересуют. В этом проблема. Мне нужно показать больше действий (событий). Это из

blktrace /dev/nvme0n1

между тем, на других машинах с Linux это работает или даже на той же машине, если я отслеживаю другое устройство, например

blktrace /dev/sda

Это работает, как показано в этом отрывке:

  8,0   18       69    17.778827207  8538  Q  RA 306186592 + 8 [ls]
  8,0   18       70    17.778827767  8538  G  RA 306186592 + 8 [ls]
  8,0   18       71    17.778828037  8538  I   R 306186592 + 8 [ls]
  8,0   18       72    17.778828284  8538  D   R 306186592 + 8 [ls]
  8,0   18       73    17.778832181  8538  A  RA 306186600 + 8 <- (8,1) 306184552
  8,0   18       74    17.778832397  8538  Q  RA 306186600 + 8 [ls]
  8,0   18       75    17.778832951  8538  G  RA 306186600 + 8 [ls]
  8,0   18       76    17.778833221  8538  I   R 306186600 + 8 [ls]
  8,0   18       77    17.778833441  8538  D   R 306186600 + 8 [ls]
  8,0   18       78    17.778837161  8538  A  RA 306186608 + 8 <- (8,1) 306184560

Этот последний (с /dev/sda) показывает все различные действия, и это здорово. Итак, как мне получить подробную информацию о blktrace для устройства nvme0n1? И почему он автоматически не показывает другие действия (кроме Q и C)?


person jimm    schedule 01.07.2015    source источник


Ответы (1)


Вы должны иметь возможность видеть D, если ваше устройство nvme имеет интерфейс блочного устройства. Попробуйте libaio двигатель в fio и запустите random write. Обязательно установите планировщик NOOP IO в /sys/block/nvme../scheduler

person ARH    schedule 02.07.2015
comment
Спасибо за чаевые. Теперь работает. Обновление Ubuntu до 15.04, возможно, также помогло, я сделал сразу несколько изменений. - person jimm; 03.07.2015