Как я могу получить трассировку дискового ввода-вывода с фактическими значениями ввода?
Я хочу сгенерировать какой-нибудь файл трассировки из дискового ввода-вывода, но проблема в том, что мне нужны реальные входные данные, а также временная метка, логический адрес и размер блока доступа и т. Д.
Я пытался решить эту проблему с помощью "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