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

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

Я пытался решить эту проблему с помощью "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" "не печатается вообще.

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

1 ответ

Решение

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

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

Другие вопросы по тегам