Утилита blktrace (присутствует в репозиториях Ubuntu и Debian) позволяет
проконтролировать какие именно данные передаются для заданного блочного устройства.Например, посмотреть общую статистику и детали обмена данными с /dev/sda можно выполнив команду:
blktrace -d /dev/sda -o - | blkparse -i -
где, blkparse фильтр для наглядного представления результатов.
В качестве альтернативы можно предложить задействование механизма /proc/sys/vm/block_dump,
при записи 1 в этот файл начнется сбор данных, при записи 0 - результаты будут выведены в буфер dmesg.
Скрипт для упрощения разбора данных можно загрузить здесь:
http://www.digitalprognosis.com/opensource/scripts/top-disk-...
Мониторинг ввода/вывода не на уровне планировщика, а на уровне конечных процессов удобно проводить
при помощи утилиты iotop (http://guichaz.free.fr/iotop/)URL: http://prefetch.net/blog/index.php/2009/02/16/tracing-block-.../
Обсуждается: http://www.opennet.me/tips/info/1952.shtml
Переделанная "Вкачествеальтернатива", скрипт с учётом ядра 2.6.28+> при записи 1 в этот файл начнется сбор данных,
> при записи 0 - результаты будут выведены в буфер dmesg.при записи 1, в этот файл, начнется вывод в буфер dmesg,
при записи 0 - прекратится, вывод в буфер dmesg.#!/bin/sh
dmesg -c >/dev/null 2>&1
echo 1 > /proc/sys/vm/block_dump# Timeout
sleep 60# Disable block dumping
echo 0 > /proc/sys/vm/block_dump
# Header
printf "%10s %15s %10s %10s %10s\n" CONUT COMMAND PID ACTION DEVICE# Hide the eyes child! It gets ugly from here on
IFS="
"for line in $(dmesg | awk '{if ( $2 ~ "READ" || $2 ~ "WRITE" ) { \
print $1 " " $2 " " $3 " " $NF}}' | uniq -c | sort -nr );
do
num=$(echo $line | awk '{print $1}' )
command=$(echo $line | awk '{ print $2 }' | sed -re 's/\([[:digit:]]+\)://')
pid=$(echo $line| awk -F'[()]' '{ print $2 }')
action=$(echo $line | awk '{ print $3 }')
device=$(echo $line | awk '{ print $NF }')printf "%10s %15s %10s %10s %10s\n" "$num" "$command" "$pid" "$action" "$device"
done
# EOFПримерно так выглядит
CONUT COMMAND PID ACTION DEVICE
30 firefox 2939 WRITE sda2
12 firefox 2939 READ sda2
6 xfsbufd 696 WRITE sda2
3 xfsbufd 1382 WRITE sdb2
3 pdflush 42 WRITE sdb2
3 firefox 2939 READ sda2
2 pdflush 42 WRITE sda2
1 xfssyncd 704 WRITE sda2
1 xfssyncd 1384 WRITE sdb2
1 pdflush 42 WRITE sda2Cпасибо Опеннету за оптимизацию пробелов...
Ухты pavlinux говорит "спасибо" и делится кодом.
У него сегодня был плохой день? :)
>У него сегодня был плохой день? :)павлинух иногда стебается... иногда по делу говорит..
а Вы только первое.
Поднимите руку, кто видел сварочный аппарат на RTOS....
Во-о-о-о-о-т..., а японцаф, точно торкнуло - MiSPO uITRON 4.0 RTOS =)