Lightweight runtime failure prediction
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Yazılım sistemleri gün geçtikçe büyümekte ve karmaşıklaşmaktadır. Bu genel eğilimlerin üzerine, yazılım kalite güvencesi tekniklerinin yetersizlikleri ve günümüzdeki market baskıları eklenince, yazılımlar içlerinde bilinen ve bilinmeyen birçok yanlışlarla sahaya sürülmekte ve bu yanlışlar kaçınılmaz olarak hatalara sebebiyet vermektedir.Literatürde, yazılımların sahadaki güvenilirliklerini artırmak için, meydana gelebilecek hataları önceden tahmin etmeyi ve bu hataların oluşumlarını engellemeyi veya hataların verebilecekleri zararları en aza indirgemeyi amaçlayan birçok yöntem yer almıştır. Bu yöntemlerin en önemli işlevsel parçası, hataların önceden tahmin edilmesidir.Literatürde önerilen hata tahmin yöntemlerindeki olumsuz yan, bu yöntemlerin yazılım sistemlerine kara kutu muamelesi yapması ve işlemci, hafıza ve ağ kullanımı gibi sadece dışarıdan gözlemlenen özellikleri kullanarak telemetri verisi toplamasıdır. İçsel telemetri verisi genel olarak kullanılmamıştır. Bunun tek nedeni çalışmakta olan programdan veri toplanması sırasındaki olası çevirimiçi ek yüktür. Hata tahmin yöntemleri sahadaki yazılımları hedef aldığından dolayı, yüksek ek yük harcamaları genelde kabul edilebilir değildir. Bunun sonucu olarak, var olan hata tahmin yöntemleri ana olarak yazılım yaşlanmasından kaynaklana hataları hedef almaktadır.Bu tezde, içsel telemetri verisi kullanarak hafif yüklü çevirimiçi hata tahmini yapan bir yöntem sunuyoruz. Buna ek olarak, bir seri geniş kapsamlı deneyle bu yöntemin değerlendirmesini sunuyoruz. Bu deneylerde üç adet yaygın kullanımlı yazılım kobay uygulama olarak kullanılmıştır. Deneylerden elde edilen sonuçlar önerilen yöntemin yazılım hatalarını makul maliyetlerde ve güvenilir bir şekilde tahmin edebileceğini belirgin bir şekilde göstermiştir. Software systems are getting increasingly complex and bigger in size. When these general trends are coupled with the shortcomings of software quality assurance techniques and time-to-market pressures, development houses are forced to release their software with many known and unknown defects, which inevitably cause failures in the field.Many approaches have been proposed in the literature to predict the manifestation of software failures at runtime and proactively take preventive measures, such as preventing the failures or decreasing their harmful consequences. Runtime prediction of failures is an integral part of such proactive-preventive frameworks.One downside of the existing approaches is that they treat software systems as a black-box and leverage only the profiling data which are directly observable from outside the programs, such as, CPU, memory, and network utilizations. Internal execution data is typically not leveraged. This is solely due to the potential runtime overhead cost that can be imposed by collecting internal execution data while the programs are running. As the failure prediction approaches target software systems operating in the field, high overhead costs are generally not acceptable. Consequently, the existing approaches mainly target at predicting failures caused by software aging.In this thesis, we present a lightweight runtime failure prediction approach that leverages internal execution data. We, furthermore, evaluate the approach by conducting a series of large-scale experiments, in which three widely-used software applications were used as subject applications. The results of our experiments strongly suggest that the proposed approach can reliably predict software failures at an affordable cost.
Collections