Бенчмарк скрипт Linux Bash - PullRequest
       5

Бенчмарк скрипт Linux Bash

8 голосов
/ 07 ноября 2011

Есть ли способ сравнить производительность скрипта bash? скрипт загружает удаленный файл, а затем вызывает несколько программ командной строки для манипуляции. Я хотел бы знать (или как можно больше):

  • Общее время
    • Время, потраченное на скачивание
    • Время, затраченное на каждую команду, называется
    • - = [Я думаю, что они могут быть обернуты во «временные» вызовы, верно? ] = -
  • Средняя скорость загрузки
    • использует wget
  • Общее количество использованной памяти
  • Общее использование процессора
    • загрузка ЦП на команду под названием

Я могу внести изменения в скрипт bash, чтобы вставить любые команды теста, необходимые в определенных точках (т. Е. Между вызовами приложения). Не уверен, сможет ли какой-нибудь «верхний» ниндзя решить эту проблему или нет. Невозможно найти что-нибудь полезное (по крайней мере, для ограниченного понимания) в файле man.

Будут запущены тесты на OSX Terminal, а также на Ubuntu (если это имеет значение).

Ответы [ 2 ]

18 голосов
/ 07 ноября 2011
strace -o trace -c -Ttt ./scrip
  1. -c - отслеживание времени, затраченного процессором на конкретный вызов.
  2. -Ttt сообщит вам время в микросекундах в момент выполнения каждого системного вызова.
  3. -o сохранит вывод в файл "trace".
4 голосов
/ 07 ноября 2011

Вы должны быть в состоянии достичь этого несколькими способами.Одним из способов является использование time встроенной функции для каждой интересующей команды и получение результатов.Возможно, вам придется быть осторожным с любыми каналами и перенаправлениями;

Вы можете также рассмотреть возможность перехвата сигналов SIGCHLD, DEBUG, RETURN, ERR и EXIT и размещения там информации о синхронизации, но вы можете не получить некоторые результаты.

Эта концепция использования ЦП каждой командыне даст вам ничего полезного, все команды используют 100% процессора.Использование памяти - это то, что вы можете извлечь, но вы должны взглянуть на

Если вы хотите получить глубокую статистику процесса, вам нужно использовать strace ... Подробнее смотрите на странице руководства strace (1).Я сомневаюсь, что -Ttt, как предполагается, в другом месте полезны все, что говорит вам время системных вызовов, и вы хотите другую информацию трассировки процесса.

Возможно, вы также захотите увидеть инструменты ltrace и dstat.

На этот же вопрос вы найдете ответ Инструменты тестирования Linux

...