АКТУАЛЬНЫЕ ВОПРОСЫ БОРЬБЫ С ЭФФЕКТОМ «СТАРЕНИЯ» ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Удовиченко Антон, МГУПС Ошибки программного обеспечения 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 Спасибо за внимание!