Способ мониторинга компьютерной системы
Иллюстрации
Показать всеИзобретение относится к способу мониторинга компьютерной системы. Техническим результатом является увеличение быстродействия за счет выполнения автоматического анализа данных мониторинга. Способ включает аккумулирование событий, описывающих поведение компьютерной системы, разделение событий на группы по их типу и анализ события для определения причин необычного поведения и/или проблемы в работе системы, при этом анализируют события, выполняя следующие операции: кластеризуют события из каждой группы событий в набор кластеров, при этом вычисляют сходство между событиями применяя метрику сходства; определяют кластеры, которые описывают ненормальное поведение или проблемы в работе системы, при этом используют следующее правило: если событие в кластере содержит информацию о том, что функция системы возвратила неверное значение, тогда такой кластер считают кластером, который описывает ненормальное поведение или проблемы в работе системы; определяют причины ненормального поведения или проблем в работе системы, при этом определяют стабильные компоненты событий в каждом кластере. 2 з.п. ф-лы, 4 ил.
Реферат
Изобретение относится к области вычислительной техники, а именно к способам мониторинга компьютерной системы, и может быть применено во встроенных компьютерных системах для определения причин необычного поведения и/или проблем в работе системы при выполнении программ.
Классический способ мониторинга компьютерной системы имеет на две стадии: сбор событий, описывающих поведение компьютерной системы, и их визуализация. На стадии сбора событий выполняемую в компьютерной системе программу инструментируют и собирают необходимые данные. На стадии визуализации собранные данные отображают для пользователя. Пользователь обрабатывает данные и определяет узкие места в процессе выполнения программы вручную. Однако обычно объем данных мониторинга для реальных программ очень большой, и обработка специфических типов данных требует от пользователя наличия большого опыта в исследуемой области. Таким образом, в общем случае обработка данных вручную представляет собой очень сложную задачу. Существует множество инструментов мониторинга, которые осуществляют классический способ мониторинга. Следующим шагом после анализа выполнения программы пользователем вручную является автоматический анализ выполнения, в котором данные мониторинга анализируют автоматически, чтобы помочь пользователю или разработчику определить причину проблемы без обработки большого объема данных вручную.
Известны способ и устройство мониторинга состояния вычислительной машины (см., например, патент США №5251151) [1], в которых выполняют кластеризацию событий, поступающих от тестового вибрационного сигнала вычислительной машины, для диагностики механического состояния вычислительной машины.
Недостатком данных системы и способа является то, что в них не осуществляют поиск сходства между событиями в данных мониторинга для определения ошибок выполнения программ, при этом предполагается, что сходство между событиями будет производить пользователь вручную, а это замедляет и ухудшает процесс мониторинга.
В патенте США №6947933 [2] описан способ определения сходства между частями документов в больших массивах неструктурированных данных, в котором разделяют данные на сегменты, определяют для сегментов коэффициенты, группируют коэффициенты в кластеры и определяют сходство между документами путем анализа кластеров коэффициентов. В этом патенте не приводится сведений о том, как именно анализируют кластеры коэффициентов и находят сходство между событиями в данных мониторинга для определения ошибок выполнения программ.
Наиболее близким к заявляемому изобретению является способ мониторинга выполнения программы с помощью гистограммы (см. патент США №6360337) [3], в котором собирают данные о работе программы (события, происходящие в компьютерной системе) и анализируют их, оценивая совокупность характеристик. Данный способ выбран в качестве прототипа заявляемого изобретения.
К недостатку способа-прототипа [3] можно отнести то, что в нем не осуществляют поиск сходства между событиями в данных мониторинга для определения ошибок выполнения программ, при этом предполагается, что сходство между событиями будет производить пользователь вручную, а это замедляет и ухудшает процесс мониторинга.
Задачей заявляемого изобретения является создание способа мониторинга компьютерной системы с увеличенным быстродействием и удобством пользования.
Поставленная задача решена путем создания способа мониторинга компьютерной системы, в котором аккумулируют данные о событиях (далее по тексту - «события»), описывающие поведение компьютерной системы, разделяют события на группы по их типу и анализируют события для определения причин необычного поведения и/или проблемы в работе системы, отличающегося тем, что анализируют события путем выполнения следующих операций:
- кластеризуют события из каждой группы событий в набор кластеров, при этом вычисляют степень сходства (далее по тексту - «сходство») между событиями применяя метрику сходства;
- определяют кластеры, которые описывают ненормальное поведение или проблемы в работе системы, при этом используют следующее правило: если событие в кластере содержит информацию о том, что функция системы возвратила неверное значение, тогда такой кластер считают кластером, который описывает ненормальное поведение или проблемы в работе системы;
- определяют причины ненормального поведения или проблем в работе системы, при этом определяют стабильные компоненты событий в каждом кластере, которые описывают ненормальное поведение или проблемы в работе системы: для i-го аргумента каждого события вычисляют среднее сходство M(i) с другими событиями и дисперсию D(i); считают аргумент стабильным, если дисперсия сходства в кластере находится в интервале [M(i)-D(i), M(i)+D(i)];
- отображают кластеры и отмечают причины ненормального поведения или проблем в работе системы для пользователя.
Для функционирования изобретения важно, чтобы вычисляли сходство между событиями применяя метрику сходности, используя при этом коэффициент Дайса и набор предельных значений для каждого типа аргумента событий: два аргумента разных событий считали сходными, если значение коэффициента Дайса для этих аргументов больше, чем предельное значение для данного типа аргумента; два события считали сходными, если сходны все аргументы этих событий, а также возвращаемые события; новое событие заносили в кластер, если это событие сходно хотя бы с одним событием из кластера.
Для функционирования изобретения имеет смысл, чтобы отображали кластеры и отмечали причины ненормального поведения или проблем в работе системы для пользователя, при этом выделяя цветом части каждого события в кластере, которые приводят к ошибке.
Таким образом, технический результат предложенного изобретения заключается в том, что предложен новый способ мониторинга компьютерной системы с увеличенным быстродействием и удобством пользования, в частности, за счет определения необычного поведения системы и определения наиболее вероятной причины такого поведения с применением алгоритмов статистического сбора данных. События, описывающие поведение компьютерной системы, структурируют, определяют проблему, возникающую при выполнении программы в компьютерной системе, и наиболее вероятную причину проблемы окрашивают с помощью средств системы мониторинга.
В заявляемом способе мониторинга выполняют автоматический анализ производительности, который помогает пользователю определить не только проблему, возникающую при выполнении программы, но и причину данной проблемы. А именно исследуют системные вызовы к операционной системе для определения зависимости между аргументами и возвращаемыми значениями. Если системный вызов возвращает ошибку, в способе определяют аргументы, которые, возможно, повлияли на этот результат. Другими словами, в способе определяют причину ошибки в системном вызове, в случае если причиной ошибки являются специфические величины аргументов системного вызова.
В заявленном способе также применяют кластеризацию для разделения всех аргументов системных вызовов и их возвращаемых значений на кластеры. Каждый кластер содержит сходные системные вызовы (системные вызовы, которые имеют сходные аргументы и возвращаемые значения). Во время последующей обработки аргументы системных вызовов в каждом кластере анализируют и отображают аргументы, которые с наибольшей вероятностью стали причиной ошибки.
Для лучшего понимания предложенного изобретения далее приводится его подробное описание с соответствующими чертежами.
Фиг.1. Схема выполнения кластеризации событий согласно изобретению.
После сбора данных в трассу 1 событий 2 события разделяют на группы 3 с одинаковым именем (типом) события, а каждую группу разделяют на кластеры 4 по сходству.
Фиг.2. Схема определения стабильных аргументов событий согласно изобретению.
В каждом кластере 4 события 2 определяют стабильные аргументы (Arg1, Arg2, …, ArgN), которые исследуют в качестве источника ошибки.
Фиг.3. Схема перемещения данных при выполнении способа мониторинга компьютерной системы согласно изобретению.
Собирают события, которые описывают поведение ядра и приложения компьютерной системы, в трассу. За счет выполнения процедуры кластеризации разделяют события на набор кластеров по сходству. Выполнение последующей процедуры определения причины ошибки позволяет определить, какая характеристика события (аргумент системного вызова) приводит к ошибке.
Фиг.4. Схема пошагового выполнения способа мониторинга компьютерной системы согласно изобретению.
Заявляемый способ мониторинга компьютерной системы состоит из следующих стадий: сбора событий, описывающих поведение компьютерной системы, разделения событий на группы по их типу и анализа событий для определения причин необычного поведения и/или проблемы в работе системы.
На стадии анализа событий осуществляют их кластеризацию. При осуществлении кластеризации выполняют следующие основные шаги.
- Определяют объекты анализа. Чтобы результат анализа был полезным, учитывают основные характеристики собранных событий, описывающих поведение компьютерной системы, и не учитывают незначительные характеристики.
- Определяют функцию сходства объектов. Функция сходства является критерием для объединения событий в одну группу. Выбор функции сходства зависит от набора проблем, которые необходимо определить.
- Выбирают алгоритм кластеризации. Данный алгоритм должен выполняться быстро и не занимать много памяти, поскольку он предназначен для выполнения во встроенных системах.
В качестве объекта анализа выбирают события, генерируемые средством профилирования SWAP. Каждое событие соответствует входу в (или возврату из) функцию ядра компьютерной системы, вызываемую процессом, выполняемым в компьютерной системе. Событие содержит следующую информацию: ID функций, которые инициируют генерацию события, ID процесса и потока (контекста и вызова), аргументы (или возвращаемое значение).
Список, содержащий аргументы и возвращаемые значения каждого системного вызова, используют в качестве вектора для процедуры кластеризации. Он содержит информацию о поведении компьютерной системы и может быть выявлен как источник проблемы в работе компьютерной системы. Проверяют аргументы следующих типов: строка и целое число (флаг, адрес памяти, счетчик). Коэффициент Дайса выбирают в качестве меры сходства для всех анализируемых типов аргументов событий:
d(A, В)=(2*|А∩В|)/(|А|+|В|),
где А и В являются наборами, представляющими два сравниваемых объекта (строки, целые числа). Для каждого типа аргументов событий определяют свой вариант метрики коэффициента Дайса, чтобы обеспечить полезный результат, соответствующий поставленной задаче.
В качестве алгоритма кластеризации применяют алгоритм кластеризации, выполняемый в реальном времени, с предопределенным пороговым значением.
При более подробном рассмотрении процесс кластеризации выглядит следующим образом. В соответствии с определенной выше метрикой для аргументов событий (коэффициентами Дайса) определяют сходство между двумя событиями посредством способа, учитывающего природу аргументов. Результат сравнения аргументов двух событий А и В представлен в качестве вектора d=(d(1), …, d(n)), где 0≤d(i)≤1 - сходство между аргументами событий. Далее в способе полагают, что событие А сходно с событием В тогда и только тогда, когда все компоненты d удовлетворяют следующему условию: d(i)≥S(i), ∀i∈{1, …, n}, где S(i) - предельная величина для типа данных, соответствующего i-й позиции в событии. Другими словами, два вектора заносят в один кластер, если функция сходства для всех аргументов больше, чем пороговая величина (для каждого типа аргументов соответствующая пороговая величина определена). Данный алгоритм выполняется быстро и не занимает много памяти, что позволяет использовать предложенный способ во встроенных системах.
Иерархия кластеров, выстроенная в результате выполнения кластеризации событий, показана на Фиг.1. Все аккумулированные события разделяют на кластеры в соответствии с типом события, и затем каждый кластер разделяют на несколько подкластеров в соответствии со сходством событий.
Чтобы определить источник проблемы в каждом кластере, производят автоматический поиск стабильного аргумента в каждом кластере. Каждый стабильный аргумент рассматривают в качестве возможного источника проблемы. Определяют стабильный аргумент следующим образом. Для i-го аргумента каждого события вычисляют среднее сходство M(i) с другими событиями и его дисперсию D(i). Полагают, что аргумент стабильный, если распределение сходства в кластере находится в интервале [M(i)-D(i), M(i)+D(i)] (Фиг.2).
Рассмотрим вариант выполнения предложенного способа мониторинга компьютерной системы при выполнении программы. Способ состоит из следующих операций.
Собирают (аккумулируют) события, описывающие поведение компьютерной системы.
Разделяют собранные события на непересекающиеся группы по типам (блоки событий с несходными типами не могут быть сгруппированы). Для каждой группы событий одного типа выполняют кластеризацию, при этом:
i. Берут следующий некластеризованный элемент Е.
ii. Для каждого существующего кластера:
- просматривают все элементы кластера и сравнивают с некластеризованным элементом Е,
- если все элементы схожи с Е, добавляют Е к этому кластеру и переходят к шагу i,
- если есть элемент(ы) в кластере, которые не схожи с Е, переходят к следующему существующему кластеру,
- Если все кластеры просмотрены, переходят к шагу iii.
iii. Создают новый кластер и добавляют в него Е.
Определяют кластеры, которые описывают ошибку узкого места в выполнении программы в компьютерной системе. Определяют причину ошибки или узкого места в выполнении программы.
Определяют поля стабильных событий в каждом кластере, который описывает ошибку или узкое место в выполнении программы (стабильные поля событий, это поля, одинаковые для всех событий кластера).
iv. Сравнивают каждое поле первого события в кластере с соответствующим полем всех остальных событий в кластере. Если поле события имеет целочисленный тип, проверяют, соответствует ли величина поля соответствующим величинам поля всех остальных событий кластера. Если поле события имеет тип строка, извлекают часть строки, общую для всех соответствующих полей остальных событий в кластере.
Заявляемый способ позволяет автоматически находить зависимости между событиями (компонентами событий), которые аккумулируют на начальном этапе сбора событий, описывающих поведение компьютерной системы. Зависимости находят путем определения специфического критерия (меры сходства), который позволяет разделить все события на группы, причем в одну группу попадают не только те события, которые имеют одинаковые значения компонентов, но и события, имеющие «сходные» значения компонентов. Предполагается, что события, имеющие «сходные» аргументы и возвращаемые значения, описывают похожие поведения системы. Если поведение системы приводит к ошибке, то один (или несколько) компонентов событий могут содержать описание причины ошибки. В предложенном способе производят автоматический анализ производительности путем разделения всех событий на группы, нахождения групп, которые описывают ошибочное поведение системы, и выявление причины ошибки в каждой такой группе.
При выполнении предложенного способа значительно упрощается процесс анализа и сокращается время анализа данных при мониторинге компьютерной системы.
Хотя указанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.
1. Способ мониторинга компьютерной системы, в котором аккумулируют события, описывающие поведение компьютерной системы, разделяют события на группы по их типу и анализируют события для определения причин необычного поведения и/или проблемы в работе системы, отличающийся тем, что анализируют события, выполняя следующие операции:- кластеризуют события из каждой группы событий в набор кластеров, при этом вычисляют сходство между событиями применяя метрику сходства;- определяют кластеры, которые описывают ненормальное поведение или проблемы в работе системы, при этом используют следующее правило: если событие в кластере, содержит информацию о том, что функция системы возвратила неверное значение, тогда такой кластер считают кластером, который описывает ненормальное поведение или проблемы в работе системы;- определяют причины ненормального поведения или проблем в работе системы, при этом определяют стабильные компоненты событий в каждом кластере, которые описывают ненормальное поведение или проблемы в работе системы: для i-го аргумента каждого события вычисляют среднее сходство M(i) с другими событиями и дисперсию D(i); считают аргумент стабильным, если дисперсия сходства в кластере находится в интервале [M(i)-D(i), M(i)+D(i)];- отображают кластеры и отмечают причины ненормального поведения или проблем в работе системы для пользователя.
2. Способ по п.1, отличающийся тем, что вычисляют сходство между событиями, применяя метрику сходства, используя при этом коэффициент Дайса и набор предельных значений для каждого типа аргумента событий: два аргумента разных событий считают сходными, если значение коэффициента Дайса для этих аргументов больше, чем предельное значение для данного типа аргумента; два события считают сходными, если сходны все аргументы этих событий, а также возвращаемые события; новое событие заносят в кластер, если это событие сходно, хотя бы с одним событием из кластера.
3. Способ по п.1, отличающийся тем, что отображают кластеры и отмечают причины ненормального поведения или проблем в работе системы для пользователя, при этом части каждого события в кластере, которые приводят к ошибке, выделяют цветом.