Как измерить время ввода-вывода для Java-приложения, работающего в Ubuntu? - PullRequest
3 голосов
/ 25 августа 2010

Я хотел бы узнать, сколько времени мое приложение ожидает ввода-вывода.Я запускаю это Java-приложение в Ubuntu / Linux.Я использую yourkit profiler.Предложите, если есть какой-либо другой инструмент профилирования для измерения времени ввода / вывода.

Ответы [ 3 ]

1 голос
/ 25 августа 2010

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

Если ваше приложение, работающее на полной скорости на «пустом» в противном случае, использует только 10% ЦП (и, соответственно, примерно 90% ожидает ввода-вывода), то исследование того, что вы можете сделать на стороне ввода-вывода, имеет большой смысл, если Вы хотите увеличить пропускную способность. С другой стороны, если все ваши ядра работают более чем на 90%, вы не получите там много, так как наше приложение связано с процессором. Команды top, iostat и vmstat могут выдавать эти приблизительные оценки.

strace может дать представление о том, сколько раз файлы открывались и закрывались, выполнялись операции чтения и т. Д., ... В этом случае также научитесь использовать grep или perl для просеивания множества данных, которые производит этот инструмент.

Следите за тем, насколько эффективно используется память, и знайте свою инфраструктуру. Если вы видите в vmstat, что большое количество блоков загружается и удаляется из памяти перенастройки до тех пор, пока она не упадет до нуля, или все другие усилия будут бесполезны.

Из вашего вопроса неясно, сконцентрированы ли вы на задержке, дрожании, пропускной способности, ... но такие относительно быстрые приблизительные оценки помогают определить, где искать с помощью микроскопа.

1 голос
/ 25 августа 2010

Вы можете использовать RotateRight / Zoom или LTProf . Или, если вам не нужна высокая точность, вы можете просто взять 10 или 20 сэмплов стека, используя lsstack , и посмотреть, какой процент у ввода-вывода, или сделать то же самое в Java.

0 голосов
/ 25 августа 2010

Используйте strace для просмотра системных вызовов.Прочитайте страницу man для ознакомления.

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