Эффект накопления ошибок программного обеспечения и

advertisement
АКТУАЛЬНЫЕ ВОПРОСЫ БОРЬБЫ С
ЭФФЕКТОМ «СТАРЕНИЯ» ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
Удовиченко Антон, МГУПС
Ошибки программного обеспечения
2

Основные причины наличия ошибок в программном обеспечении:





Недостаточный контроль качества программных продуктов
Постоянное возрастание сложность программного обеспечения
Высокие темпы разработки программного обеспечения
Каждая из aging-related ошибок в отдельности не является
критической.
Накопление aging-related ошибок в процессе работы приложения
ведет к его «старению»
3
Эффект «старения» программного
обеспечения

Эффект «старения» программного обеспечения может приводить к:





снижению качества предоставления сервиса (например, повышение
времени отклика);
выходу из строя и временной недоступности сервиса;
некорректной работе сервиса (например, выдача неправильного
результата расчета из-за накопления ошибок округления).
Примеры: утечка памяти, утечка файловых дескрипторов,
накопление ошибок округления, накопление искаженных данных.
Эффекту «старения» ПО наиболее подвержены приложения с долгим
временем непрерывной работы , например, web сервер, сервер
приложений, сервер баз данных.
Модель работы приложения при
воздействии эффекта «старения» ПО
4
Модель на основе непрерывной Марковской цепи [1]
Восстановление рабочего состояния
приложения
5




Восстановление рабочего состояния приложения представляет собой
регулярный перевод приложения в рабочее состояние, близкое к
первоначальному, за счет проведение некоторой «очистки».
«Очистка» может включать в себя сбор мусора, повторную
инициализацию внутренних структур.
Распространенные методы восстановления: перезагрузка ОС,
перезапуск приложения или отдельного процесса, микроперезагрузка, миграция приложения на уровне процессов.
Методы восстановления обладают различными недостатками,
основные из которых:




временная недоступность сервиса;
прерывание работы клиентов с сервисом;
модификации исходного кода приложения;
ограниченная область восстановления.
Планирование процессов восстановления
6


Недостатки методов восстановления приводят к необходимости
планирования процессов восстановления
Подходы к планированию процессов восстановления:
 на основе аналитической модели работы приложения:


Примеры: CTMC model [1], Semi-Markov model [2], MRSPN model [3];

Методам на основе аналитической модели свойственна высокая
чувствительность к изменению конфигурации приложения или ОС.
на основе постоянного мониторинга состояния приложения и ОС:

Примеры: ARMA/ARX models [4], Workload-based estimation [5];

Методы данного подхода обычно обладают сложной процедурой
подготовки и требуют большого набора исходных данным, получение
которых предполагает размещение агентов сбора данных внутри ОС.
Решение проблемы «старения» ПО
7



Решение проблемы «старения» ПО строится на основе
комбинирования методов восстановления и методов планирования
процессов восстановления.
Программные средства: IBM Director’s Software Rejuvenation, JAGR.
При решение проблемы «старения» ПО не уделяется внимание:
 согласованию процессов восстановления различных
приложений;
 особенностям построения информационной системы,
например, применение технологии виртуальных машин;
 динамики изменения издержек метода восстановления в
процессе работы приложения.
Комплексный подход к решению проблемы
«старения» ПО
8
Комплексный подход предполагает решение следующих задач:

Восстановление рабочего состояния приложения



минимальное негативное воздействие процесса восстановления на
работу пользователей
Определение времени восстановления


перевод приложения в рабочее состояние, близкое к первоначальному
снижение негативного воздействия эффекта «старения» ПО и
процессов восстановления на работу пользователей

простота подготовки исходных данных

гибкость настройки методов
Согласование процессов восстановления

своевременность выполнения процессов восстановления

учет текущего состояния ИС, например, доступного объема ресурсов
Список литературы
9
1.
Huang Y., Kintala C., Kolettis N., Fulton N. Software rejuvenation: Analysis, module and applications //
The Proceedings of Fault-Tolerant Computing Symposium. 1995. Vol. 25. P. 381-390.
2.
Dohi T., Goseva-Popstojanova K., Trivedi K. Statistical non-parametric algorithms to estimate the optimal
software rejuvenation schedule // Proc. of 2000 Pacific Rim International Symposium on Dependable
Computing. 2000. P. 77-84.
3.
Garg S., Puliafito A., Telek M., Trivedi K. Analysis of Software Rejuvenation using Markov Regenerative
Stochastic Petri Net // In Proc. of the Sixth IEEE Intl. Symp. on Software Reliability Engineering. 1995. P.
180-187.
4.
Li L., Vaidyanathan K., Trivedi K. An Approach for Estimation of Software Aging in a Web Server // The
Proceedings of International Symposium on Empirical Software Engineering. 2002. Vol. 7. P. 91– 100.
5.
Vaidyanathan K., Trivedi K. A Measurement-Based Model for Estimation of Resource Exhaustion in
Operational Software Systems // 10th International Symposium on Software Reliability Engineering.
1999. P. 84-93.
10
Спасибо за внимание!
Download