Измерьте количество поисков - PullRequest
0 голосов
/ 13 мая 2018

Учитывая процесс, который интенсивно читает / записывает файловые системы, наша цель состоит в том, чтобы измерить количество запросов, вызываемых в процессе? В идеале мы должны измерять реальные операции поиска на дисковом устройстве. Измерение lseek в libc / syscall будет достаточно хорошим. Процесс рабочей нагрузки запускает программу C / C ++.

Будет ли возможный способ измерения?

1 Ответ

0 голосов
/ 13 мая 2018

Чтобы измерить вызовы на lseek или аналогичные, вы можете использовать команду strace (например, $ strace myprog - и, возможно, перенаправить вывод из strace в какой-либо файл, чтобы можно было подсчитать количество операций данного типа). В качестве альтернативы, вы могли бы, вероятно, обработать свой код, написав функцию-оболочку (или класс-оболочку), которая подсчитывает вызовы внутри оболочки, но это достаточно трудоемко, чтобы заставить эту работу работать для «всего».

Фактические движения головы на современных жестких дисках не легко (или даже невозможно) посчитать, так как это происходит внутри накопителя. В далеком прошлом интерфейс жесткого диска принимал запросы физических секторов и треков, поэтому вы могли, по крайней мере теоретически, выяснить, когда произошли большие изменения в количестве треков. В наши дни запрашивается только номер сектора 0 .. общее количество секторов, а количество секторов на дорожке обычно является переменным (больше секторов дальше). Это, кроме очевидного фактора, что это происходит глубоко в драйвере ОС, конечно же, и большинство людей на самом деле не хотят прибегать к инструментам драйвера жесткого диска - смена драйверов жесткого диска является довольно определенным способом полностью испортить Ваш диск ... Только КОГДА-ЛИБО делайте это, если у вас есть (как минимум) две машины, на одной из которых вы пытаетесь использовать измененный драйвер, а на другой - вашу машину для разработки. Там было сделано, что [хотя я не пытался сосчитать, ищет - мне нужно было изменить драйвер жесткого диска, чтобы он работал на причудливой системе, которая у меня была] ...;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...