Статистика отдельного логического процессора
Статистика отдельного логического процессора предоставляет информацию о каждом логическом процессоре. В сценарии Vue каждая статистика задается в следующем формате:
__stat.cpu.cpuX->имя-поля где
cpuX - экземпляр CPU, к примеру cpu0 или cpu1, а
имя-поля - идентификатор статистического показателя. Эти поля аналогичны полям структуры perfstat_cpu_total_t, которая определяется в файле заголовка /usr/include/libperfstat.h. Этот файл заголовка входит в библиотеку perfstat AIX.| Имя поля сценария Vue | Тип данных | Описание |
|---|---|---|
| user | unsigned long long | Исходное количество тактов синхронизации, потраченных в пользовательском режиме. |
| sys | unsigned long long | Исходное количество тактов синхронизации, потраченных в системном режиме. |
| простой | unsigned long long | Исходное количество тактов синхронизации, потраченных в режиме бездействия. |
| wait | unsigned long long | Исходное количество тактов синхронизации, затраченных на ожидание завершения операций ввода-вывода. |
| pswitch | unsigned long long | Число переключений контекста. |
| syscall | unsigned long long | Количество системных вызовов. |
| sysread | unsigned long long | Количество системных вызовов чтения. |
| syswrite | unsigned long long | Количество системных вызовов записи. |
| sysfork | unsigned long long | Число системных вызовов fork. |
| sysexec | unsigned long long | Количество системных вызовов exec. |
| readch | unsigned long long | Число символов, переданных с помощью системных вызовов чтения. |
| writech | unsigned long long | Число символов, переданных с помощью системных вызовов записи. |
| bread | unsigned long long | Число прочитанных блоков |
| bwrite | unsigned long long | Число записанных блоков |
| lread | unsigned long long | Число запросов на логическое чтение. |
| lwrite | unsigned long long | Число запросов на логическую запись. |
| phread | unsigned long long | Число физических операций чтения, то есть, операций чтения на устройствах с линейным доступом. |
| phwrite | unsigned long long | Число физических операций записи, то есть, операций записи на устройствах с линейным доступом. |
| iget | unsigned long long | Число операций поиска inode. |
| namei | unsigned long long | Число операций поиска vnode по пути. |
| dirblk | unsigned long long | Число 512-байтовых блоков, прочитанных процедурой поиска в каталоге для нахождения записи файла. |
| msg | unsigned long long | Число операций для сообщений Inter Process Communication (IPC). |
| sema | unsigned long long | Число операций для семафоров IPC. |
| minfaults | unsigned long long | Число страничных ошибок без участия подсистемы ввода-вывода. |
| majfaults | unsigned long long | Число страничных ошибок с участием подсистемы ввода-вывода. |
| puser | unsigned long long | Число тактов физического процессора, потраченных в пользовательском режиме. |
| psys | unsigned long long | Число тактов физического процессора, потраченных в системном режиме. |
| pidle | unsigned long long | Число тактов физического процессора, потраченных в режиме бездействия. |
| pwait | unsigned long long | Число тактов физического процессора, затраченных на ожидание операций ввода-вывода. |
| redisp_sd0 | unsigned long long | Число повторных диспетчеризаций нитей в пределах домена привязки планировщика 0. |
| redisp_sd1 | unsigned long long | Число повторных диспетчеризаций нитей в пределах домена привязки планировщика 1. |
| redisp_sd2 | unsigned long long | Число повторных диспетчеризаций нитей в пределах домена привязки планировщика 2. |
| redisp_sd3 | unsigned long long | Число повторных диспетчеризаций нитей в пределах домена привязки планировщика 3. |
| redisp_sd4 | unsigned long long | Число повторных диспетчеризаций нитей в пределах домена привязки планировщика 4. |
| redisp_sd5 | unsigned long long | Число повторных диспетчеризаций нитей в пределах домена привязки планировщика 5. |
| migration_push | unsigned long long | Число миграций нитей из локальной очереди выполнения в другую очередь из-за исчерпания ресурсов для распределения нагрузки. |
| migration_S3grq | unsigned long long | Число миграций нитей из глобальной очереди выполнения в локальную, приводящих к перемещению за пределы домена планировщика 3. |
| migration_S3pul | unsigned long long | Число миграций нитей из другой очереди выполнения процессора, приводящих к перемещению за пределы домена планировщика 3. |
| invol_cswitch | unsigned long long | Число принудительных переключений контекста нитей. |
| vol_cswitch | unsigned long long | Число запланированных переключений контекста нитей. |
| runque | unsigned long long | Число нитей в очереди выполнения. |
| bound | unsigned long long | Число нитей привязки. |
| decrintrs | unsigned long long | Число прерываний декрементного счетчика. |
| mpcrintrs | unsigned long long | Число прерываний Multi-Processor Communication (MPC) receive. |
| mpcsintrs | unsigned long long | Число прерываний MPC send. |
| devintrs | unsigned long long | Число прерываний устройств. |
| softintrs | unsigned long long | Число вызовов внеуровневых обработчиков. |
| phantintrs | unsigned long long | Число фантомных прерываний. |
| idle_donated_purr | unsigned long long | Число циклов бездействия, передаваемых выделенным разделом, в котором разрешена такая передача. |
| idle_donated_spurr | unsigned long long | Число циклов бездействия SPURR, передаваемых выделенным разделом, в котором разрешена такая передача. |
| busy_donated_purr | unsigned long long | Число занятых циклов, переданных выделенным разделом, в котором разрешена такая передача. |
| busy_donated_spurr | unsigned long long | Число занятых циклов SPURR, переданных выделенным разделом, в котором разрешена такая передача. |
| idle_stolen_purr | unsigned long long | Число циклов бездействия, отнятых гипервизором у выделенного раздела. |
| idle_stolen_spurr | unsigned long long | Число циклов бездействия SPURR, отнятых гипервизором у выделенного раздела. |
| busy_stolen_purr | unsigned long long | Число занятых циклов, отнятых гипервизором у выделенного раздела. |
| busy_stolen_spurr | unsigned long long | Число занятых циклов SPURR, отнятых гипервизором у выделенного раздела. |
| hpi | unsigned long long | Число операций подкачки в оперативную память гипервизора. |
| puser_spurr | unsigned long long | Число циклов SPURR, затраченных в пользовательском режиме. |
| psys_spurr | unsigned long long | Число циклов SPURR, затраченных в режиме ядра. |
| pidle_spurr | unsigned long long | Число циклов SPURR, затраченных в режиме бездействия. |
| pwait_spurr | unsigned long long | Число циклов SPURR, затраченных в режиме ожидания. |
| spurrflag | int | Это поле устанавливается, если CPU работает в режиме SPURR. |
| localdispatch | unsigned long long | Число диспетчеризаций локальных нитей в логическом процессоре. |
| neardispatch | unsigned long long | Число диспетчеризаций ближних нитей в логическом процессоре. |
| fardispatch | unsigned long long | Число диспетчеризаций дальних нитей в логическом процессоре. |
| cswitches | unsigned long long | Число переключений контекста. |
| state | int | Указывает, доступен ли процессор. Нулевое значение в поле state означает, что процессор недоступен, все остальные значения говорят о том, что он доступен. |
| tb_last | unsigned long long | Последнее прочитанное значение регистра timebase. |
| vtb_last | unsigned long long | Последнее прочитанное значение виртуального timebase. |
| icount_last | unsigned long long | Последнее прочитанное значение регистра счетчика инструкций. |
Прим.: Для следующих элементов требуется доступ к памяти без закрепления:
pswitch, syscall,
sysread, syswrite, sysfork, sysexec, readch, writech, bread, bwrite, lread, lwrite, phread, phwrite,
iget, namei, dirblk, msg, sema, decrintrs, mpcrintrs, mpcsintrs, devintrs, softintrs,
phantintrs. Поскольку тесты сценариев ProbeVue выполняются в среде, где все прерывания выключены, то в случае отсутствия необходимых данных в резидентной памяти элементам, требующим доступ без закрепления, присваивается значение 0.