[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по настройке производительности


Оценка интенсивности использования процессора нитями ядра с помощью команды pprof

Команда pprof сообщает показатели использования процессора для всех нитей ядра, выполнявшихся в указанный период времени. Работа этой команды основана на утилите трассировки. Исходная информация о процессах сохраняется в файле pprof.flow. На ее основе команда может создать отчеты пяти типов. Если флаги не заданы, то выдаются все пять отчетов.

Для того чтобы узнать, установлена ли в системе программа pprof (эта программа предусмотрена в AIX версии 4.3.3 и выше), введите следующую команду:

# lslpp -lI perfagent.tools

Эта программа создает отчеты следующих типов:

pprof.cpu
Перечислены все нити ядра, упорядоченные по фактическому времени обработки процессором. Отчет содержит следующую информацию: имя процесса, ИД процесса, ИД родительского процесса, состояние процесса в начале и в конце работы программы, ИД нити, ИД родительской нити, фактическое время процессора, время запуска, время завершения и время работы программы.

pprof.famcpu
Перечислена информация обо всех семействах (процессы с общим предком). Имя и ИД процесса и его предка не обязательно совпадают. Отчет содержит следующую информацию: время запуска, имя процесса, ИД процесса, число нитей, общее время процессора.

pprof.famind
Перечислены все процессы, сгруппированные по семействам (процессы с общим предком). Имена дочерних процессов указаны с отступом по отношению к именам их родителей. Отчет содержит следующие столбцы: Начальное время, Конечное время, Фактическое время процессора, ИД процесса, ИД родительского процесса, ИД нити, ИД родительской нити, Состояние процесса в начале и в конце, Уровень, Имя процесса.

pprof.namecpu
Перечислена информация о каждом типе нити ядра (все исполняемые нити с одним именем). Отчет содержит следующую информацию: имя процесса, число нитей, время процессора, доля от общего времени процессора.

pprof.start
Список всех нитей ядра, переданных процессору на обработку в течение работы команды pprof. Нити упорядочены по времени запуска. Отчет содержит следующую информацию: имя процесса, ИД процесса, ИД родительского процесса, состояние процесса в начале и в конце работы программы, ИД нити, ИД родительской нити, фактическое время процессора, время запуска, время завершения и время выполнения программы.

Ниже приведен пример файла pprof.namecpu, содержащего отчет о выполнении программы tthreads32. Программа порождает четыре нити, каждая из которых, в свою очередь, порождает собственный процесс. Эти процессы запускают несколько программ ksh и sleep:

                    Отчет Pprof о процессах
 
                    Упорядочено по времени процессора
 
                    От: четверг 19 октября 2000 г. 17.53.07
                    До: четверг 19 октября 2000 г. 17.53.22
 
 
               Процесс  # нитей     Время_CPU       %
            ======== ==========  ========  ========
          tthreads32         13     0.116    37.935
                  sh          8     0.092    30.087
                Idle          2     0.055    17.987
                 ksh         12     0.026     8.503
               trace          3     0.007     2.289
                java          3     0.006     1.962
               kproc          5     0.004     1.308
             xmservd          1     0.000     0.000
             trcstop          1     0.000     0.000
             swapper          1     0.000     0.000
                 gil          1     0.000     0.000
                  ls          4     0.000     0.000
               sleep          9     0.000     0.000
                  ps          4     0.000     0.000
             syslogd          1     0.000     0.000
                nfsd          2     0.000     0.000
                     ==========  ========  ========
                             70     0.306   100.000

Соответствующий файл pprof.cpu выглядит следующим образом:

                    Отчет Pprof об использовании процессора
 
                    Упорядочено по фактическому времени процессора
 
                    От: четверг 19 октября 2000 г. 17.53.07
                    До: четверг 19 октября 2000 г. 17.53.22
 
 
        E = Выполнен    F = Разветвлен
        X = Завершен    A = Активен (на момент начала или конца трассировки)
        C = Создана нить
 
               Процесс     PID     PPID  BE      TID     PTID      Учет    Начало     Конец  Разность
               =====    =====    ===== ===    =====    =====  ========  ========  ========  ========
                Idle      774        0  AA      775        0     0.052     0.000     0.154     0.154
          tthreads32     5490    11982  EX    18161    22435     0.040     0.027     0.154     0.126
                  sh    11396     5490  EE    21917     5093     0.035     0.082     0.154     0.072
                  sh    14106     5490  EE    16999    18867     0.028     0.111     0.154     0.043
                  sh    13792     5490  EE    20777    18179     0.028     0.086     0.154     0.068
                 ksh     5490    11982  FE    18161    22435     0.016     0.010     0.027     0.017
          tthreads32     5490    11982  CX     5093    18161     0.011     0.056     0.154     0.098
          tthreads32     5490    11982  CX    18179    18161     0.010     0.054     0.154     0.099
          tthreads32    14506     5490  FE    17239    10133     0.010     0.128     0.143     0.015
                 ksh    11982    13258  AA    22435        0     0.010     0.005     0.154     0.149
          tthreads32    13792     5490  FE    20777    18179     0.010     0.059     0.086     0.027
          tthreads32     5490    11982  CX    18867    18161     0.010     0.057     0.154     0.097
          tthreads32    11396     5490  FE    21917     5093     0.009     0.069     0.082     0.013
          tthreads32     5490    11982  CX    10133    18161     0.008     0.123     0.154     0.030
          tthreads32    14106     5490  FE    16999    18867     0.008     0.088     0.111     0.023
               trace     5488    11982  AX    18159        0     0.006     0.001     0.005     0.003
               kproc     1548        0  AA     2065        0     0.004     0.071     0.154     0.082
                Idle      516        0  AA      517        0     0.003     0.059     0.154     0.095
                java    11612    11106  AA    14965        0     0.003     0.010     0.154     0.144
                java    11612    11106  AA    14707        0     0.003     0.010     0.154     0.144
               trace    12544     5488  AA    20507        0     0.001     0.000     0.001     0.001
                  sh    14506     5490  EE    17239    10133     0.001     0.143     0.154     0.011
               trace    12544     5488  CA    19297    20507     0.000     0.001     0.154     0.153
                 ksh     4930     2678  AA     5963        0     0.000     0.154     0.154     0.000
               kproc     6478        0  AA     3133        0     0.000     0.154     0.154     0.000
                  ps    14108     5490  EX    17001    18867     0.000     0.154     0.154     0.000
          tthreads32    13794     5490  FE    20779    18179     0.000     0.154     0.154     0.000
                  sh    13794     5490  EE    20779    18179     0.000     0.154     0.154     0.000
                  ps    13794     5490  EX    20779    18179     0.000     0.154     0.154     0.000
                  sh    14108     5490  EE    17001    18867     0.000     0.154     0.154     0.000
          tthreads32    14108     5490  FE    17001    18867     0.000     0.154     0.154     0.000
                  ls    13792     5490  EX    20777    18179     0.000     0.154     0.154     0.000
:
:
:


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]