RU2424564C2 - Способ мониторинга компьютерной системы - Google Patents

Способ мониторинга компьютерной системы Download PDF

Info

Publication number
RU2424564C2
RU2424564C2 RU2008137933/08A RU2008137933A RU2424564C2 RU 2424564 C2 RU2424564 C2 RU 2424564C2 RU 2008137933/08 A RU2008137933/08 A RU 2008137933/08A RU 2008137933 A RU2008137933 A RU 2008137933A RU 2424564 C2 RU2424564 C2 RU 2424564C2
Authority
RU
Russia
Prior art keywords
events
cluster
event
similarity
clusters
Prior art date
Application number
RU2008137933/08A
Other languages
English (en)
Other versions
RU2008137933A (ru
Inventor
Сергей Сергеевич Грехов (RU)
Сергей Сергеевич Грехов
Екатерина Анатольевна Горелкина (RU)
Екатерина Анатольевна ГОРЕЛКИНА
Original Assignee
Корпорация "САМСУНГ ЭЛЕКТРОНИКС К., Лтд."
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Корпорация "САМСУНГ ЭЛЕКТРОНИКС К., Лтд." filed Critical Корпорация "САМСУНГ ЭЛЕКТРОНИКС К., Лтд."
Priority to RU2008137933/08A priority Critical patent/RU2424564C2/ru
Publication of RU2008137933A publication Critical patent/RU2008137933A/ru
Application granted granted Critical
Publication of RU2424564C2 publication Critical patent/RU2424564C2/ru

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

Изобретение относится к способу мониторинга компьютерной системы. Техническим результатом является увеличение быстродействия за счет выполнения автоматического анализа данных мониторинга. Способ включает аккумулирование событий, описывающих поведение компьютерной системы, разделение событий на группы по их типу и анализ события для определения причин необычного поведения и/или проблемы в работе системы, при этом анализируют события, выполняя следующие операции: кластеризуют события из каждой группы событий в набор кластеров, при этом вычисляют сходство между событиями применяя метрику сходства; определяют кластеры, которые описывают ненормальное поведение или проблемы в работе системы, при этом используют следующее правило: если событие в кластере содержит информацию о том, что функция системы возвратила неверное значение, тогда такой кластер считают кластером, который описывает ненормальное поведение или проблемы в работе системы; определяют причины ненормального поведения или проблем в работе системы, при этом определяют стабильные компоненты событий в каждом кластере. 2 з.п. ф-лы, 4 ил.

Description

Изобретение относится к области вычислительной техники, а именно к способам мониторинга компьютерной системы, и может быть применено во встроенных компьютерных системах для определения причин необычного поведения и/или проблем в работе системы при выполнении программ.
Классический способ мониторинга компьютерной системы имеет на две стадии: сбор событий, описывающих поведение компьютерной системы, и их визуализация. На стадии сбора событий выполняемую в компьютерной системе программу инструментируют и собирают необходимые данные. На стадии визуализации собранные данные отображают для пользователя. Пользователь обрабатывает данные и определяет узкие места в процессе выполнения программы вручную. Однако обычно объем данных мониторинга для реальных программ очень большой, и обработка специфических типов данных требует от пользователя наличия большого опыта в исследуемой области. Таким образом, в общем случае обработка данных вручную представляет собой очень сложную задачу. Существует множество инструментов мониторинга, которые осуществляют классический способ мониторинга. Следующим шагом после анализа выполнения программы пользователем вручную является автоматический анализ выполнения, в котором данные мониторинга анализируют автоматически, чтобы помочь пользователю или разработчику определить причину проблемы без обработки большого объема данных вручную.
Известны способ и устройство мониторинга состояния вычислительной машины (см., например, патент США №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. Сравнивают каждое поле первого события в кластере с соответствующим полем всех остальных событий в кластере. Если поле события имеет целочисленный тип, проверяют, соответствует ли величина поля соответствующим величинам поля всех остальных событий кластера. Если поле события имеет тип строка, извлекают часть строки, общую для всех соответствующих полей остальных событий в кластере.
Заявляемый способ позволяет автоматически находить зависимости между событиями (компонентами событий), которые аккумулируют на начальном этапе сбора событий, описывающих поведение компьютерной системы. Зависимости находят путем определения специфического критерия (меры сходства), который позволяет разделить все события на группы, причем в одну группу попадают не только те события, которые имеют одинаковые значения компонентов, но и события, имеющие «сходные» значения компонентов. Предполагается, что события, имеющие «сходные» аргументы и возвращаемые значения, описывают похожие поведения системы. Если поведение системы приводит к ошибке, то один (или несколько) компонентов событий могут содержать описание причины ошибки. В предложенном способе производят автоматический анализ производительности путем разделения всех событий на группы, нахождения групп, которые описывают ошибочное поведение системы, и выявление причины ошибки в каждой такой группе.
При выполнении предложенного способа значительно упрощается процесс анализа и сокращается время анализа данных при мониторинге компьютерной системы.
Хотя указанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.

Claims (3)

1. Способ мониторинга компьютерной системы, в котором аккумулируют события, описывающие поведение компьютерной системы, разделяют события на группы по их типу и анализируют события для определения причин необычного поведения и/или проблемы в работе системы, отличающийся тем, что анализируют события, выполняя следующие операции:
- кластеризуют события из каждой группы событий в набор кластеров, при этом вычисляют сходство между событиями применяя метрику сходства;
- определяют кластеры, которые описывают ненормальное поведение или проблемы в работе системы, при этом используют следующее правило: если событие в кластере, содержит информацию о том, что функция системы возвратила неверное значение, тогда такой кластер считают кластером, который описывает ненормальное поведение или проблемы в работе системы;
- определяют причины ненормального поведения или проблем в работе системы, при этом определяют стабильные компоненты событий в каждом кластере, которые описывают ненормальное поведение или проблемы в работе системы: для i-го аргумента каждого события вычисляют среднее сходство M(i) с другими событиями и дисперсию D(i); считают аргумент стабильным, если дисперсия сходства в кластере находится в интервале [M(i)-D(i), M(i)+D(i)];
- отображают кластеры и отмечают причины ненормального поведения или проблем в работе системы для пользователя.
2. Способ по п.1, отличающийся тем, что вычисляют сходство между событиями, применяя метрику сходства, используя при этом коэффициент Дайса и набор предельных значений для каждого типа аргумента событий: два аргумента разных событий считают сходными, если значение коэффициента Дайса для этих аргументов больше, чем предельное значение для данного типа аргумента; два события считают сходными, если сходны все аргументы этих событий, а также возвращаемые события; новое событие заносят в кластер, если это событие сходно, хотя бы с одним событием из кластера.
3. Способ по п.1, отличающийся тем, что отображают кластеры и отмечают причины ненормального поведения или проблем в работе системы для пользователя, при этом части каждого события в кластере, которые приводят к ошибке, выделяют цветом.
RU2008137933/08A 2008-09-24 2008-09-24 Способ мониторинга компьютерной системы RU2424564C2 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2008137933/08A RU2424564C2 (ru) 2008-09-24 2008-09-24 Способ мониторинга компьютерной системы

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2008137933/08A RU2424564C2 (ru) 2008-09-24 2008-09-24 Способ мониторинга компьютерной системы

Publications (2)

Publication Number Publication Date
RU2008137933A RU2008137933A (ru) 2010-03-27
RU2424564C2 true RU2424564C2 (ru) 2011-07-20

Family

ID=42138074

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008137933/08A RU2424564C2 (ru) 2008-09-24 2008-09-24 Способ мониторинга компьютерной системы

Country Status (1)

Country Link
RU (1) RU2424564C2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2672137C1 (ru) * 2018-02-28 2018-11-12 Александр Александрович Бречко Способ контроля состояния логической структуры сети связи

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2672137C1 (ru) * 2018-02-28 2018-11-12 Александр Александрович Бречко Способ контроля состояния логической структуры сети связи

Also Published As

Publication number Publication date
RU2008137933A (ru) 2010-03-27

Similar Documents

Publication Publication Date Title
Meng et al. Localizing failure root causes in a microservice through causality inference
US9075912B2 (en) Method and system for software system performance diagnosis with kernel event feature guidance
US8862728B2 (en) Problem determination and diagnosis in shared dynamic clouds
US9864676B2 (en) Bottleneck detector application programming interface
US8209567B2 (en) Message clustering of system event logs
Syer et al. Leveraging performance counters and execution logs to diagnose memory-related performance issues
EP2390790A1 (en) Profiling of software applications
US7698690B2 (en) Identifying code that wastes time performing redundant computation
Jiang et al. Efficient fault detection and diagnosis in complex software systems with information-theoretic monitoring
US9183108B2 (en) Logical grouping of profile data
Ozcelik et al. Seer: a lightweight online failure prediction approach
US8856754B2 (en) Systems and methods for enhanced profiling of computer applications
Kitchenham et al. Design metrics in practice
RU2424564C2 (ru) Способ мониторинга компьютерной системы
Zheng et al. Anomaly localization in large-scale clusters
WO2019046996A1 (en) JAVA SOFTWARE LATENCY ANOMALY DETECTION
US8478575B1 (en) Automatic anomaly detection for HW debug
JP2019003333A (ja) バグ混入確率計算プログラム及びバグ混入確率計算方法
Jindal et al. Memory leak detection algorithms in the cloud-based infrastructure
Wen et al. PerfDoc: Automatic performance bug diagnosis in production cloud computing infrastructures
Rhee et al. Software system performance debugging with kernel events feature guidance
Devi Software fault prediction with metric threshold using clustering algorithm
Chen et al. Proverr: System level statistical fault diagnosis using dependency model
Bhattacharyya et al. Online characterization of buggy applications running on the cloud
Brünink et al. Using branch frequency spectra to evaluate operational coverage

Legal Events

Date Code Title Description
FA92 Acknowledgement of application withdrawn (lack of supplementary materials submitted)

Effective date: 20100405

FZ9A Application not withdrawn (correction of the notice of withdrawal)

Effective date: 20101012

MM4A The patent is invalid due to non-payment of fees

Effective date: 20180925