Please use this identifier to cite or link to this item: https://hdl.handle.net/10316/100421
DC FieldValueLanguage
dc.contributor.advisorVieira, Marco-
dc.contributor.advisorCosta, Ernesto Jorge Fernandes-
dc.contributor.authorCampos, João Rodrigues de-
dc.date.accessioned2022-06-17T11:14:31Z-
dc.date.available2022-06-17T11:14:31Z-
dc.date.issued2022-01-27-
dc.date.submitted2021-11-02-
dc.identifier.urihttps://hdl.handle.net/10316/100421-
dc.descriptionTese de Doutoramento no Programa de Doutoramento em Ciências e Tecnologias de Informação, apresentada ao Departamento de Engenharia Informática da Faculdade de Ciências e Tecnologia da Universidade de Coimbra.pt
dc.description.abstractThe complexity of modern software makes it nearly impossible to detect every fault before deployment. Such faults can ultimately lead to failures at runtime, compromising the business process and leading to non-negligible costs or losses. Online Failure Prediction (OFP) is a fault-tolerance technique that attempts to predict incoming failures to avoid or mitigate their consequences based on the analysis of past data and the current system state. The systems that can benefit the most from these advances are large servers, including both cloud and virtualized systems, where the costs and risks associated with a failure are not negligible. At the same time, given recent technological developments, Machine Learning (ML) algorithms have shown their ability to adapt and extract knowledge in a variety of complex problems. Although there are already some works relying on ML for OFP, most of them focus on local experiments with a small set of ML techniques or targeting smaller components (e.g. hard-drives). Given the reliability of modern systems, one challenge to the widespread use of OFP is that failures are rare events, and thus adequate failure data for training predictors is typically not available. To overcome this issue, fault injection has been accepted as a viable alternative to generate realistic failure data. However, despite the vast literature, fault injectors are still complex pieces of software that are difficult to implement and use. Generating data through fault injection also raises some challenges, such as how to properly process the data to create and assess predictive models. The particular characteristics of fault injection campaigns combined with those of OFP require specific considerations and techniques to create representative predictors. Another reason why OFP is not widely adopted is that processes and tools for assessing and comparing failure prediction solutions are not available. Effectively implementing failure prediction involves extremely accurate tuning, but also an adequate selection of the most suitable models for a specific target system. More precisely, selecting a particular predictor requires a rigorous assessment of alternative solutions using appropriate metrics, and their comparison using well-defined processes. Considering the complexity and interdisciplinarity of the various techniques and research fields required to create accurate failure predictors, the existing body of related work is very limited. As a result, research and development on OFP for complex systems have become stale over the years. This thesis addresses the most relevant challenges to the use of OFP, by thoroughly exploring the problem and proposing a comprehensive framework to support the development of predictive models. The key contributions can be divided into two groups. The first comprises techniques and artifacts to support OFP, including a detailed procedure on the use of fault injection to generate failure data to support OFP on modern systems. To make such a process feasible, guidelines are provided on how to implement a testbed for complex experimental processes that can leverage modern computational power while ensuring the consistency and repeatability of experiments. Also, given the plethora and complexity of ML methods and the constant need to explore new problems and techniques, a customizable and comprehensive ML toolbox was implemented to support the exploration and development of predictive models. The second group of contributions focuses on procedures and methodologies to develop OFP solutions. This includes a thorough methodology on how to use failure data generated using fault injection to properly develop predictive models, taking into account the specific characteristics of the failure prediction domain. As properly assessing and comparing the performance of ML models requires a rigorous and well-defined process that takes into consideration the operational needs of the system, a benchmarking approach for ML-based solutions for OFP is proposed. The ML techniques considered, used, and implemented throughout the work are in themselves significant contributions due to the extent and detail into which they were analyzed and studied for the OFP problem. Ultimately, this yields innovation on how to use and assess advanced ML solutions for problems with similar characteristics. To demonstrate usefulness and effectiveness, the framework was used to explore and create accurate failure predictors for a modern system. This comprised an extensive fault injection campaign on a system based on an up-to-date Linux kernel, considering different workloads representing different usage scenarios, several fault types, and various failure modes. These data were then thoroughly explored and an extensive study was conducted on the use of ML techniques, from traditional to state-of-the-art algorithms, and their applicability to OFP. Also, a comprehensive benchmarking campaign was conducted to achieve a fair and sound comparison of alternative solutions, exploring the need to consider the technical requirements of the system where the predictors will operate. Results demonstrate that not only it is possible to create accurate failure predictors, but also that the techniques, artifacts, methodologies, and procedures proposed are essential to guide the process and assure a representative and sound experimental process.pt
dc.description.abstractRESUMO: A crescente complexidade de produtos de software torna praticamente impossível detetar todas as falhas antes de estes serem postos em produção. Estas falhas podem levar a avarias durante a execução, o que compromete todo o processo de negócio e acarreta custos ou perdas elevadas. Previsão de Avarias (PA) é uma técnica de tolerância a falhas que tenta prever a ocorrência de avarias num futuro próximo de modo a evitar ou mitigar as suas consequências, com base na análise de dados de avarias ocorridas no passado e no estado atual do sistema. Os sistemas que mais podem beneficiar com avanços nesta área são os servidores, incluindo sistemas em nuvem e virtualizados, em que os custos e riscos associados a uma avaria não são negligenciáveis. Ao mesmo tempo, devido aos recentes desenvolvimentos tecnológicos, os algoritmos de Aprendizagem Computacional (AC) têm demonstrado capacidade de extrair conhecimento em múltiplos problemas complexos. Embora já existam alguns trabalhos que aplicam AC para PA, a maioria restringe-se a experiências ad-hoc, com um conjunto muito limitado de técnicas de AC, ou é focado em componentes de pequena escala (e.g., discos rígidos). Dada a confiabilidade dos sistemas atuais, as avarias são eventos raros, o que constitui um desafio para o uso de PA, uma vez que dificilmente existem dados suficientes para desenvolver modelos de previsão. Para ultrapassar esse problema, a injeção de falhas foi aceite como uma alternativa viável para gerar dados de avarias realistas. No entanto, apesar da vasta literatura existente, os injetores de falhas ainda são ferramentas complexas, difíceis de implementar e usar. De facto, a geração de dados através de injeção de falhas levanta alguns desafios, como, por exemplo, processar os dados adequadamente para criar e avaliar modelos preditivos. As características de dados gerados através de injeção de falhas combinadas com as de PA requerem considerações e técnicas específicas para que os modelos criados sejam representativos. Outra razão pela qual PA não é amplamente adotada é a inexistência de processos e ferramentas adequados para avaliar e comparar as soluções de previsão de avarias. A implementação eficaz da previsão de avarias requer um ajuste extremamente preciso, mas também uma seleção sistematizada dos modelos mais apropriados para um dado sistema. Mais concretamente, a seleção de um modelo exige uma avaliação rigorosa de soluções alternativas com recurso a métricas adequadas e à sua comparação através de processos bem definidos. Considerando a complexidade e interdisciplinaridade das várias técnicas e campos de pesquisa necessários para criar preditores de avarias, o número de trabalhos relacionados é muito limitado. Como resultado, a investigação e o desenvolvimento em PA para sistemas complexos estagnaram com o passar dos anos. Esta tese aborda os desafios mais relevantes para o uso de PA, explorando pormenorizadamente o problema e propondo uma abordagem para apoiar o desenvolvimento de modelos preditivos. As contribuições principais podem ser divididas em dois grupos. O primeiro compreende técnicas e ferramentas de suporte ao desenvolvimento para PA, incluindo um procedimento pormenorizado sobre o uso de injeção de falhas para gerar dados de avarias. Para tornar esse processo viável, são fornecidas diretrizes sobre como implementar um ambiente de teste que permita alavancar o poder computacional atual, garantindo a consistência e repetibilidade das experiências. Além disso, dada a abundância e complexidade dos métodos de AC e a necessidade constante de explorar novos problemas e técnicas, é apresentada uma ferramenta extensível de AC para apoiar a exploração e o desenvolvimento de modelos preditivos. O segundo grupo de contribuições, por sua vez, centra-se em procedimentos e metodologias para desenvolver soluções de PA, incluindo uma metodologia para a utilização de dados de avarias gerados através de injeção de falhas no desenvolvimento de modelos preditivos, levando em consideração as características específicas do domínio de previsão de avarias. Uma vez que avaliar e comparar adequadamente o desempenho dos modelos de AC requer um processo rigoroso e bem definido que leve em consideração as necessidades operacionais do sistema, é proposta uma abordagem de benchmarking para soluções baseadas em AC para PA. Para além disso, as técnicas de AC consideradas, utilizadas e implementadas ao longo do trabalho são, em si mesmas, contribuições significativas devido à extensão e pormenores em que foram analisadas e estudadas para o problema de OPF. Isto gera inovação sobre como usar e avaliar soluções avançadas de AC para problemas com características semelhantes. Para demonstrar a utilidade e eficácia, a abordagem proposta foi usada para explorar e criar preditores de avarias para um sistema moderno. Tal inclui uma ampla campanha de injeção de falhas num sistema baseado num kernel Linux atualizado, considerando diferentes cargas de trabalho que representam diferentes cenários de utilização, vários tipos de falhas e diversos modos de avarias. Esses dados foram posteriormente explorados e foi realizado um estudo aprofundado sobre o uso de técnicas de AC, desde algoritmos tradicionais até algoritmos de última geração, e a sua aplicabilidade para PA. Além disso, foi conduzida uma campanha extensa de benchmarking para comparar de forma justa as soluções alternativas, explorando a necessidade de considerar os requisitos técnicos do sistema no qual os preditores irão funcionar. Os resultados demonstram que não só é possível criar preditores de avarias precisos, mas também que as técnicas, ferramentas, metodologias e procedimentos propostos nesta tese são essenciais para guiar o processo e garantir um processo experimental representativo.pt
dc.language.isoengpt
dc.relationSFRH/BD/140221/2018pt
dc.relationPOCI-01-0145-FEDER-032504pt
dc.relationPOCI-01-0247-FEDER-045907pt
dc.relationinfo:eu-repo/grantAgreement/EC/H2020/777154/EUpt
dc.rightsopenAccesspt
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/pt
dc.subjectOnline Failure Predictionpt
dc.subjectFault Injectionpt
dc.subjectDependabilitypt
dc.subjectMachine Learningpt
dc.subjectBenchmarkingpt
dc.subjectPrevisão de Avariaspt
dc.subjectInjeção de Falhaspt
dc.subjectConfiabilidadept
dc.subjectAprendizagem Computacionalpt
dc.subjectBenchmarkingpt
dc.titleAdvanced Online Failure Prediction Through Machine Learningpt
dc.typedoctoralThesispt
degois.publication.locationCoimbrapt
dc.peerreviewedyes-
dc.date.embargo2022-01-27*
dc.identifier.tid101678878pt
dc.subject.fosDomínio/Área Científica::Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informáticapt
thesis.degree.disciplineID03003196-
thesis.degree.grantor00500::Universidade de Coimbrapt
thesis.degree.leveldoutor-
thesis.degree.namePrograma de Doutoramento em Ciências e Tecnologias de Informaçãopt
thesis.degree.grantorUnit00501::Universidade de Coimbra - Faculdade de Ciências e Tecnologiapor
uc.date.periodoembargo0por
uc.rechabilitacaoestrangeiranopt
uc.date.periodoEmbargo0pt
item.openairecristypehttp://purl.org/coar/resource_type/c_18cf-
item.openairetypedoctoralThesis-
item.cerifentitytypePublications-
item.grantfulltextopen-
item.fulltextCom Texto completo-
item.languageiso639-1en-
crisitem.advisor.researchunitCISUC - Centre for Informatics and Systems of the University of Coimbra-
crisitem.advisor.researchunitCISUC - Centre for Informatics and Systems of the University of Coimbra-
crisitem.advisor.parentresearchunitFaculty of Sciences and Technology-
crisitem.advisor.parentresearchunitFaculty of Sciences and Technology-
crisitem.advisor.orcid0000-0001-5103-8541-
crisitem.advisor.orcid0000-0002-8460-4033-
Appears in Collections:UC - Teses de Doutoramento
FCTUC Eng.Informática - Teses de Doutoramento
Files in This Item:
File Description SizeFormat
20211102.JRC___PhD_Thesis.Final.pdfTese7.76 MBAdobe PDFView/Open
Show simple item record

Page view(s)

199
checked on Apr 16, 2024

Download(s)

211
checked on Apr 16, 2024

Google ScholarTM

Check


This item is licensed under a Creative Commons License Creative Commons