Причины неэффективного ввода-вывода?

Если у вас есть холст Tkinter , вы можете сохранить изображение в файл, используя на нем метод .postscript .

В противном случае вы всегда можете использовать различные общие инструменты для создания дампа окна или экрана, такие как команда import из ImageMagick, чтобы сохранить видимое окно, или возможную привязку вашего оконного менеджера к PrintScreen клавиша, возможно, в сочетании с Control или каким-либо другим модификатором.

2
05.11.2017, 00:07
1 ответ

Существует 2 набора инструментов для получения статистики устройства на уровне блока -. Первый — это iolatency из perf tools Брендана Грегга. Он создает простую гистограмму задержки операций с диском, такую ​​как:

>=(ms).. <(ms)   : I/O      |Distribution                          |
     0 -> 1       : 1913     |######################################|
     1 -> 2       : 438      |#########                             |
     2 -> 4       : 100      |##                                    |
     4 -> 8       : 145      |###                                   |
     8 -> 16      : 43       |#                                     |
    16 -> 32      : 43       |#                                     |
    32 -> 64      : 1        |#                                     |

Другой сценарий в наборе инструментов — iosnoop, который показывает команды и их операции, например:

COMM         PID    TYPE DEV      BLOCK        BYTES     LATms
/usr/bin/mon 31456  R    8,0      9741888      4096       2.14
/usr/bin/mon 31456  R    8,0      9751408      4096       0.16
/usr/bin/mon 31456  R    8,0      20022728     4096       1.44
/usr/bin/mon 31456  R    8,0      19851752     4096       0.26
jbd2/sda3-41 416    WS   8,0      130618232    65536      1.89
jbd2/sda3-41 416    WS   8,0      209996928    65536      1.92
jbd2/sda3-41 416    WS   8,0      210006528    8192       1.94

Кроме того, существует пакет blktrace , который записывает операции с блоками нижнего -уровня с помощью blktrace, а затем показывает все виды информации с помощью blkparseи многих других команд, включая простую сводку изbtt(Руководство пользователя в формате pdf):

$ sudo blktrace /dev/sda  # ^C to stop
=== sda ===
  CPU  0:                  180 events,        9 KiB data
  CPU  1:                 1958 events,       92 KiB data
  Total:                  2138 events (dropped 0),      101 KiB data
$ ls -ltra # one file per cpu
-rw-r--r--    1 root   root       8640 Nov  5 10:16 sda.blktrace.0
-rw-r--r--    1 root   root      93992 Nov  5 10:16 sda.blktrace.1
$ blkparse -O -d combined.output  sda.blktrace.*  # combine cpus
$ btt -i combined.output 
    ALL           MIN           AVG           MAX           N
Q2Q               0.000001053   0.106888548   6.376503027         253
Q2G               0.000000795   0.000002266   0.000011060         184
G2I               0.000000874   0.000979485   0.002588781         328
Q2M               0.000000331   0.000000599   0.000002716          70
I2D               0.000000393   0.000480112   0.002435491         328
M2D               0.000002044   0.000028418   0.000126845          70
D2C               0.000080986   0.001925224   0.010111418         254
Q2C               0.000087025   0.002603157   0.010120629         254
...

D2C, например, показывает, сколько времени требуется аппаратному устройству для выполнения операции.

Вы также можете запустить sudo smartctl -a /dev/sdaна каждом диске, чтобы увидеть, есть ли какие-либо ошибки.

4
27.01.2020, 21:55

Теги

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