Узнайте, сколько времени процесс заблокирован, ожидая ввода-вывода на Linux

Оформить заказ:

func convertString(_ input : String) -> String {
    let allElements = Array(input)
    let uniqueElements = Array(NSOrderedSet(array: allElements)) as! [Character]
    var outputString = ""

    for uniqueChar in uniqueElements  {
        var count = 0
        for char in allElements {
            if char == uniqueChar {
                count+=1
            }
        }
        if count > 2 {
            outputString += "\(uniqueChar)\(count)"
        } else if count == 2 {
            outputString += "\(uniqueChar)\(uniqueChar)"
        } else {
            outputString += "\(uniqueChar)"
        }
    }
    return outputString
}

Вход : convertString("atttbcdddd")

Выход : at3bcd4 [ 115]

9
задан Peter Mortensen 13 December 2009 в 09:54
поделиться

4 ответа

blktrace - это то, что вы ищете, информация о блочном уровне, ожидание / блокировка / занятость и т. Д., Очень подробно, есть довольно много пакетов, которые являются производными от нее, seekwatcher, ...

Другой инструмент, подобный тому, что сказал sigjuice, iotop, также удобен, но менее информативен для серьезного анализа. Также я считаю, что btrace / blktrace гораздо лучше подходит для трассировки ввода-вывода, чем oprofile, который является более общим и по сравнению с ним увеличивает нагрузку.

2
ответ дан 3 November 2019 в 08:21
поделиться

Также посмотрите pidstat -d . Это позволяет вам увидеть, сколько каждый процесс читает и пишет.

1
ответ дан 3 November 2019 в 08:21
поделиться

strace покажет вам, сколько времени тратится на системный вызов, но не скажет, сколько из этого времени тратится на ожидание по сравнению с временем, действительно затраченным на ввод-вывод. , вы можете выбрать, какой системный вызов вы хотите отслеживать или какой тип, это довольно мощный

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

1
ответ дан 3 November 2019 в 08:21
поделиться

top (1) will show this imformation. You can specify an individual pid with -p

-1
ответ дан 3 November 2019 в 08:21
поделиться
Другие вопросы по тегам:

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