Jump to content

ProbeVue

ProbeVue ​​— это от IBM реализация облегченной среды динамической трассировки , представленная в AIX версии 6.1. [1] ProbeVue ​​предоставляет возможность проверять запущенные процессы для проведения статистического анализа, а также получать данные из проверяемого процесса. Динамический характер ProbeVue ​​позволяет использовать его в качестве глобального инструмента повышения производительности системы, сохраняя при этом возможность детализации очень конкретных событий в одном процессе или потоке.

Поскольку модификаций исследуемого процесса не требуется. [2] или системы и облегченной конструкцией ProbeVue ​​в качестве инструмента трассировки, он подходит для использования в производственной среде, где предыдущие инструменты трассировки были бы непомерно производительными.

Описание

[ редактировать ]

ProbeVue ​​предоставляет ряд спецификаций точек проверки, которые представляют собой потенциальные события, которые можно исследовать. Сценарий, написанный на языке Vue, позволяет пользователю определить зонд, представляющий собой блок кода, называемый блоком действий, который будет запускаться при возникновении этих событий в системе. Выполнение блока действий может быть ограничено определенными событиями с помощью условного оператора, помещенного в зонд, называемого предикатом. Код в блоке действий соответствует синтаксису, подобному C , с ограниченным набором встроенных функций.

Ниже приведен пример проверки, которая определяется всякий раз, когда процесс с PID 123456 входит в системный вызов read(). Когда это событие произойдет, этот сценарий вызовет встроенную функцию printf() для печати сообщения в выходные буферы трассировки. Первая строка в блоке действий представляет собой комментарий в стиле C и поэтому не будет выполняться в среде ProbeVue.

@@syscall:*:read:entry
 when ( __pid == 123456)
{
   /* This is a comment: The process with a PID of 123456 has called read(); */
   printf("read() system call entered.\n");
}

Пробники, подобные приведенному выше примеру, можно написать и запустить без тщательного тестирования, которое обычно требуется для производственной системы. Среда ProbeVue ​​защищает пользователя от ошибочного кода или трассировки, требующей больших затрат ресурсов, что часто наблюдалось при использовании предыдущих инструментов трассировки IBM. Функция компиляции во время выполнения ProbeVue ​​обеспечивает мощную специальную среду для сбора данных.

Характеристики точки зонда

[ редактировать ]

В настоящее время IBM предоставляет следующие поставщики зондов для AIX 6.1: системный вызов, uft, интервал, трассировку и зонды ProbeVue ​​(BEGIN и END). Поставщик системных вызовов определяет точки проверки для подмножества доступных системных вызовов. Зонды трассировки пользовательских функций (uft) можно определить для точек входа функций, определенных в программе C или C++ . И зонды системного вызова, и зонды uft должны включать действительный прототип функции в сценарий Vue, прежде чем можно будет получить доступ к параметрам функции (для входных зондов) или возвращаемым значениям (только для выходных зондов системного вызова). Интервальные зонды срабатывают по таймеру и могут быть определены с интервалом в 100 миллисекунд. Поставщик трассировки позволяет ProbeVue ​​получать доступ к традиционным средствам трассировки. Наконец, зонды ProbeVue, называемые BEGIN и END, сработают при запуске и выходе самой среды ProbeVue.

Поскольку ProbeVue ​​разработан как инструмент для мониторинга событий операционной системы, язык Vue использует стиль , управляемый событиями , который используется для описания того, как обрабатывать данные, полученные из этих событий.

Как и большинство языков динамической трассировки, встречающихся в других Unix, язык Vue имеет синтаксис, подобный C, и часто представлен в этом контексте. Отношения Vue с C имеют много параллелей, но наиболее существенно отклоняются от императивной природы C. Здесь показаны некоторые контрасты и сходства. [3]

Типы данных

[ редактировать ]

Поскольку ProbeVue ​​используется для мониторинга приложений, написанных преимущественно на C, он поддерживает все типы данных C, а также структуры данных C. Vue также поддерживает типы данных String, list и timestamp. Типы String и List на самом деле являются массивами , а отметка времени представляет собой представление момента времени с высоким разрешением. Приведение типов и автоматическое повышение типов во время операций со смешанными типами также аналогично поведению C.

Указатели на массивы и структуры данных ведут себя в ProbeVue ​​так же, как и в программе C, при этом ключевое отличие от C заключается в том, что, когда указатели ссылаются на место в памяти, они ссылаются на место в другом пространстве процесса. Чтобы получить доступ к этой памяти, необходимо сначала скопировать ячейку памяти в локальную среду ProbeVue. Если память была выгружена, ProbeVue ​​не может вызвать ошибку страницы для доступа к ней. Другое отличие состоит в том, что размер указателей в C определяется во время компиляции, а в ProbeVue ​​они определяются 32- или 64- разрядностью проверяемого приложения.

Типы данных с плавающей запятой являются допустимыми типами данных для присвоения из исследуемого процесса, но не могут использоваться для математических операций с плавающей запятой.

Классы данных

[ редактировать ]

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

globals — переменные, область действия которых распространяется на весь скрипт Vue.
оболочка — переменные, которые соответствуют соглашениям оболочки и считываются из среды Unix.
ядро — переменные, предоставляемые ядром.
local — переменные, которые являются локальными для блока действия зонда.
локальный поток — переменные, которые являются локальными для потока, но имеют область действия для нескольких блоков действий проверки.
вход/выход — переменные, которые определяются зондом и локальны для него.
встроенный — предварительно определенные переменные, значения которых соответствуют текущему датчику срабатывания.

Операторы

[ редактировать ]

Vue Операторы точно следуют соглашениям C, за исключением случаев использования со строками. При использовании со строками оператор + выполняет конкатенацию, а оператор == используется для сравнения.

Управление потоком

[ редактировать ]

Vue не позволяет определять пользовательские функции. [4] recursion или конструкции цикла, но предлагает условные выражения if-then в блоке действия проверки. Легковесный характер ProbeVue ​​не позволяет сценарию Vue определять дорогостоящие циклы или обширные операции ветвления, которые могут снизить производительность.

Предварительное отслеживание

[ редактировать ]

Предварительная трассировка — это концепция, которая позволяет помечать выходные данные трассировки блока кода как предварительные. Вывод этого кода может позже быть зафиксирован в буферах трассировки как видимый вывод или может быть отброшен. Концептуально это работает так же, как управление транзакциями в SQL .

Использование

[ редактировать ]

Сценарий Vue можно вызвать с помощью магии интерпретатора и установить исполняемый файл, как сценарий оболочки, или его можно запустить в качестве входных данных для команды ProbeVue ​​в форме параметра командной строки или ввода стандартного ввода. [5] По соглашению сценарии Vue имеют расширение имени файла .e.

Недостатки

[ редактировать ]

В языке Vue отсутствуют агрегаты, вместо этого используется тип данных списка, который предлагает аналогичную, но ограниченную функциональность. Эквивалентный продукт от Solaris под названием DTrace предлагает тип данных агрегирования и мощный набор функций агрегирования для представления статистических данных. Тип данных списка предлагает только базовые функции агрегирования для одного элемента (в отличие от ассоциативных массивов агрегаций, которые предлагает DTrace). Тип данных списка предлагает небольшое упрощение по сравнению с ведением статистики вручную, но не позволяет сбрасывать список (скажем, через определенный интервал), что легко сделать при использовании ручных сводок и базовых типов. IBM взяла на себя обязательство использовать ассоциативные массивы в будущих версиях языка Vue.

Из-за длительного времени разработки DTrace по сравнению с ProbeVue, DTrace имеет значительно больше спецификаций точек измерения. [6] IBM планирует добавить значительное количество новых точек проверки в будущие выпуски технологического уровня AIX 6.1 и в следующий основной выпуск AIX.

См. также

[ редактировать ]
  1. ^ «1.4: ProbeVue». IBM RedBooks: Руководство по различиям IBM AIX версии 6.1 . 10 марта 2008 г. с. 21. ISBN  0738485799 .
  2. ^ Запись ProbeVue ​​на странице центра знаний AIX 7.1.
  3. ^ Обсуждение концепций языка Vue можно найти в разделе «Язык программирования Vue» и в спецификации ProbeVue: Extended Users Guide .
  4. ^ Предопределенные функции доступны в среде ProbeVue. в RedBook «Различия AIX 6.1» или в спецификации ProbeVue: Extended Users Guide . Список предварительно определенных функций см.
  5. ^ Запись команды ProbeVue ​​на странице Центра знаний AIX 6.1.
  6. ^ В DTrace они называются провайдерами.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 07bff18712560e2dc720a7d773211115__1708882440
URL1:https://arc.ask3.ru/arc/aa/07/15/07bff18712560e2dc720a7d773211115.html
Заголовок, (Title) документа по адресу, URL1:
ProbeVue - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)