Как я могу получить трассировку дискового ввода-вывода с фактическими входными значениями?

Я хочу сгенерировать файл трассировки с дискового ввода-вывода, но проблема в том, что мне нужны фактические входные данные вместе с меткой времени, логическим адресом, размером блока доступа и т. д.

Я пытался решить проблему, используя "blktrace | blkparse" с "iozone" в среде Ubuntu VirtualBox, но, похоже, это не работает.

В blkparse есть опция для установки выходного формата для отображения данных пакета, -f "%P", но она ничего не печатает.

ниже приведена команда, которую я использую:

$> sudo blktrace -a issue -d /dev/sda -o - | blkparse -i - -o ./temp/blktrace.sda.iozone -f "%-12C\t\t%p\t%d\t%S:%n:%N\t\t%P\n"
$> iozone -w -e -s 16M -f ./mnt/iozone.dummy -i 0

В формате печати "%-12C\t\t%p\t%d\t%S:%n:%N\t\t%P\n" все остальное печатается хорошо, но "%P " вообще не печатается.

Кто-нибудь знает, почему не отображаются данные пакета? ИЛИ кто-нибудь, кто знает другой способ получить данные пакета ввода-вывода диска с фактическим входным значением?


person lwy    schedule 20.01.2015    source источник


Ответы (1)


Насколько я знаю, blktrace не фиксирует фактические данные. Он просто захватывает метаданные. Одним из способов получения реальных данных является написание собственного модуля ядра. Некоторые студенты FIU.edu сделали это в этой статье: "I/O deduplication: Utilizing content similarity to ..."

Я бы также задал этот вопрос в списке рассылки linux-btrace: http://vger.kernel.org/majordomo-info.html

person ARH    schedule 20.01.2015