The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Трассировка ввода/вывода в Linux
Утилита blktrace (присутствует в репозиториях Ubuntu и Debian) позволяет 
проконтролировать какие именно данные передаются для заданного блочного устройства.

Например, посмотреть общую статистику и детали обмена данными с /dev/sda можно выполнив команду:

   blktrace -d /dev/sda -o - | blkparse -i - 

где, blkparse фильтр для наглядного представления результатов.

В случае вывода ошибки про отсутствие /sys/kernel/debug, убедитесь, что смонтирована debugfs:

   mount -t debugfs debugfs /sys/kernel/debug

В качестве альтернативы можно предложить задействование механизма /proc/sys/vm/block_dump, 
при записи 1 в этот файл начнется сбор данных, при записи 0 - результаты будут
выведены в буфер dmesg.
Скрипт для упрощения разбора данных можно загрузить здесь:
 http://www.digitalprognosis.com/opensource/scripts/top-disk-users


Мониторинг ввода/вывода не на уровне планировщика, а на уровне конечных процессов удобно проводить 
при помощи утилиты iotop (http://guichaz.free.fr/iotop/)
 
18.02.2009 , Источник: http://prefetch.net/blog/index.php/...
Ключи: disk, io, monitoring, linux / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Просмотр состояния и мониторинг системы

Обсуждение [ RSS ]
  • 1.1, pavlinux (ok), 00:54, 19/02/2009 [ответить]  
  • +/
    Переделанная "Вкачествеальтернатива", скрипт с учётом ядра 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       sda2

    Cпасибо Опеннету за оптимизацию пробелов...

     
  • 1.2, I3rain (??), 09:34, 19/02/2009 [ответить]  
  • +/
    Ухты pavlinux говорит "спасибо" и делится кодом.
     
     
  • 2.3, Аноним (-), 21:38, 19/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    У него сегодня был плохой день? :)
     
     
  • 3.4, vitek (??), 23:29, 19/02/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >У него сегодня был плохой день? :)

    павлинух иногда стебается... иногда по делу говорит..
    а Вы только первое.

     

  • 1.5, pavlinux (ok), 01:10, 20/02/2009 [ответить]  
  • +/
    Поднимите руку, кто видел сварочный аппарат на RTOS....
    Во-о-о-о-о-т..., а японцаф, точно торкнуло -  MiSPO uITRON 4.0 RTOS =)

     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру