Утилита Linux для записи статистики IO (случайный/последовательный, размеры блока, отношение чтения-записи)

Нижняя строка - то, что сервис от Вашего ISP, вероятно, на самом деле, что Вы получите, ничто больше и почти никогда что-либо меньше.

С Кабельным соединением Вы, вероятно, доберетесь вполне близко к тем скоростям, но будут времена, Вы только получаете 10% тех скоростей. По моему опыту, это не является очень частым, и даже все еще много достаточно хорошее. (Учитывая нисходящий поток уже 10x быстрее).

Я предполагаю, что пошел бы с кабельным соединением для дополнительного потенциала пропускной способности, начиная с его вероятного, Вы получите максимум от него большую часть времени.

4
задан 13 April 2017 в 15:14
3 ответа

Мне нравится использовать для этой цели collectl . Я упомянул об этом в другом ответе для тех, кто ищет конкретную статистику ввода-вывода для воспроизведения. Вы должны иметь возможность адаптировать вывод к вашим конкретным потребностям. В Ubuntu это должно быть доступно через обычные репозитории. Предостережение заключается в том, что вы не увидите проценты, которые ищете.

nmon - также хороший инструмент, который может предоставить большую часть информации, которую вы ищете, в удобном интерфейсе.

Если вы уже знакомы с iostat , какие у вас флаги в настоящее время используется?

Если вы заядлый специалист и профилируете конкретное приложение, вариант SystemTap может быть вариантом, но я не уверен, что это правильный вариант. Это может быть больше работы, чем нужно.

Это ' Достаточно легко получить эту информацию из Solaris Dtrace (в системах ZFS - NexentaStor снимок экрана ниже), но нужно немного покопаться на стороне Linux ... Итак, вы могли рассмотреть Dtrace для Linux .

enter image description here

2
ответ дан 3 December 2019 в 03:08

iopattern в OSX делает случайный% и последовательный процент, а iopending в OSX показывает гистограмму, но я не уверен, что именно. Но это скрипты Dtrace, поэтому они могут вам не особо помочь.

0
ответ дан 3 December 2019 в 03:08

Я следовал путем из этого сообщения , используя инструмент SystemTap .

Fisrt, установите systemtap. Для Debian / Ubuntu:

apt-get install systemtap linux-image-$(uname -r)-dbg linux-headers-$(uname -r)

Создайте сценарий systemtap, сохраните его как blockio.stp :

global writes
global reads

probe ioblock.request {
    if(bio_rw_num(rw) == BIO_WRITE)
        writes[devname] <<< size
    if(bio_rw_num(rw) == BIO_READ)
        reads[devname] <<< size
}

probe end {
    printf("\n")
    # foreach([devname] in writes-) {
    #     printf("Device: %s\n", devname)
    #     println(@hist_log(writes[devname]))
    # }
    printf("WRITE\n")
    println(@hist_log(writes["sda1"]))
    printf("READ\n")
    println(@hist_log(reads["sda1"]))
}

Замените sda1 на свой диск или используйте метод foreach, как в исходном сообщении , чтобы отобразить статистику для все приводы.

Начать мониторинг. Запуск от имени пользователя root

stap -v blockio.stp

. Остановите его, нажав Ctrl + C, когда вы хотите завершить мониторинг. Результат будет иметь вид

Pass 1: parsed user script and 95 library script(s) using 84064virt/25528res/2408shr/23916data kb, in 160usr/0sys/164real ms.
Pass 2: analyzed script: 3 probe(s), 21 function(s), 2 embed(s), 4 global(s) using 297648virt/205248res/86464shr/119268data kb, in 1750usr/60sys/1815real ms.
Pass 3: using cached /root/.systemtap/cache/ea/stap_ea33aaf95086fa562bb720d36fca7504_12821.c
Pass 4: using cached /root/.systemtap/cache/ea/stap_ea33aaf95086fa562bb720d36fca7504_12821.ko
Pass 5: starting run.
^C
WRITE
  value |-------------------------------------------------- count
      0 |@@@@@@@@@@@@@@@@@@@@@@@@                           191952
      1 |                                                        0
      2 |                                                        0
        ~
   1024 |                                                        0
   2048 |                                                        0
   4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  395272
   8192 |@@                                                  16273
  16384 |@                                                   12799
  32768 |                                                     4908
  65536 |                                                     4170
 131072 |                                                     2159
 262144 |                                                     6546
 524288 |                                                     4587
1048576 |                                                        0
2097152 |                                                        0

READ
  value |-------------------------------------------------- count
    128 |                                                       0
    256 |                                                       0
    512 |                                                       2
   1024 |                                                       0
   2048 |                                                       0
   4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  38229
   8192 |@@                                                  1550
  16384 |@@@                                                 2525
  32768 |@@                                                  1692
  65536 |@@                                                  1693
 131072 |@@@@@@@@@@@@@@@@@@                                 14455
 262144 |                                                     217
 524288 |                                                       0
1048576 |                                                       0

Pass 5: run completed in 140usr/720sys/3662349real ms.
4
ответ дан 3 December 2019 в 03:08

Теги

Похожие вопросы