Now showing 1 - 10 of 21
  • Publication
    Performance optimisation of clustered java systems
    (University College Dublin. School of Computer Science  , 2016) ; ;
    Nowadays, clustered environments are commonly used in enterprise-levelapplications to achieve faster response time and higher throughput thansingle machine environments. However, this shift from a monolithic architecture to a distributed one has augmented the complexity of these applications, considerably complicating all activities related to the performance optimisation of such clustered systems. Therefore, automatic techniques are needed to facilitate these performance-related activities, which otherwise would be highly error-prone and time-consuming. This thesis contributes to the area of performance optimisation of clustered systems in Java (a predominant technology at enterprise-level), especially aiming for large-scale environments. This thesis proposes two techniques to solve the problems of efficiently identifying workload-dependent performance issues and efficiently avoiding the performance impacts of major garbage collection, two problems that a typical clustered Java system would likely suffer in large-scale environments. In particular, this thesis introduces an adaptive framework to automate the usage of performance diagnosis tools in the performance testing of clustered systems. The aim is to ease the identification of performance issues by decreasing the effort and expertise needed to effectively use such tools. Additionally, an adaptive GC-aware load balancing strategy is introduced, which leverages on major garbage collection forecasts to decide on the best way to balance the workload across the available nodes. The aim is to improve the performance of a clustered system by avoiding the impacts in the cluster's performance due to the major garbage collection occurring at the individual nodes. Experimental results of applying these techniques to a set of real-life applications are presented, showing the benefits that the techniques bring to a clustered Java system.
      331
  • Publication
    TRINI: an adaptive load balancing strategy based on garbage collection for clustered Java systems
    Nowadays, clustered environments are commonly used in high-performance computing and enterprise-level applications to achieve faster response time and higher throughput than single machine environments. Nevertheless, how to effectively manage the workloads in these clusters has become a new challenge. As a load balancer is typically used to distribute the workload among the cluster's nodes, multiple research efforts have concentrated on enhancing the capabilities of load balancers. Our previous work presented a novel adaptive load balancing strategy (TRINI) that improves the performance of a clustered Java system by avoiding the performance impacts of major garbage collection, which is an important cause of performance degradation in Java. The aim of this paper is to strengthen the validation of TRINI by extending its experimental evaluation in terms of generality, scalability and reliability. Our results have shown that TRINI can achieve significant performance improvements, as well as a consistent behaviour, when it is applied to a set of commonly used load balancing algorithms, demonstrating its generality. TRINI also proved to be scalable across different cluster sizes, as its performance improvements did not noticeably degrade when increasing the cluster size. Finally, TRINI exhibited reliable behaviour over extended time periods, introducing only a small overhead to the cluster in such conditions. These results offer practitioners a valuable reference regarding the benefits that a load balancing strategy, based on garbage collection, can bring to a clustered Java system.
      457Scopus© Citations 11
  • Publication
    Leverage of extended information to enhance the performance of JEE systems
    This paper offers an overview of the performance engineering field, including some of its latest challenges. Then, it briefly describes the research area of enhancing the performance of JEE systems through leveraging its "Extended Information" and some recent investigation trends in that front. Finally some future research ideas are presented.
      133
  • Publication
    A unified approach to automate the usage of plagiarism detection tools in programming courses
    Plagiarism in programming assignments is an extremely common problem in universities. While there are many tools that automate the detection of plagiarism in source code, users still need to inspect the results and decide whether there is plagiarism or not. Moreover, users often rely on a single tool (using it as "gold standard" for all cases), which can be ineffective and risky. Hence, it is desirable to make use of several tools to complement their results. However, various limitations exist in these tools that make their usage a very time-consuming task, such as the need of manually analyzing and correlating their multiple outputs. In this paper, we propose an automated system that addresses the common usage limitations of plagiarism detection tools. The system automatically manages the execution of different plagiarism tools and generates a consolidated comparative visualization of their results. Consequently, the user can make better-informed decisions about potential plagiarisms. Our experimental results show that the effort and expertise required to use plagiarism detection tools is significantly reduced, while the probability of detecting plagiarism is increased. Results also show that our system is lightweight (in terms of computational resources), proving it is practical for real-world usage.
      490Scopus© Citations 3
  • Publication
    One Size Does Not Fit All: In-Test Workload Adaptation for Performance Testing of Enterprise Applications
    Carrying out proper performance testing is considerably challenging .In particular, the identification of performance issues, as well as their root causes, is a time-consuming and complex process which typically requires several iterations of tests (as this type of issue scan depend on the input workloads), and heavily relies on human expert knowledge. To improve this process, this paper presents an automated approach (that extends some of our previous work) to dynamically adapt the workload (used by a performance testing tool) during the test runs. As a result, the performance issues of the tested application can be revealed more quickly; hence, identifying them with less effort and expertise. Our experimental evaluation has assessed the accuracy of the proposed approach and the time savings that it brings to testers. The results have demonstrated the benefits of the approach by achieving a significant decrease in the time invested in performance testing (without compromising the accuracy of the test results), while introducing a low overhead in the testing environment.
      431Scopus© Citations 6
  • Publication
    Adaptive GC-aware load balancing strategy for high-assurance Java distributed systems
    High-Assurance applications usually require achieving fast response time and high throughput on a constant basis. To fulfil these stringent quality of service requirements, these applications are commonly deployed in clustered instances. However, how to effectively manage these clusters has become a new challenge. A common approach is to deploy a front-end load balancer to optimise the workload distribution among the clustered applications. Thus, researchers have been studying how to improve the effectiveness of a load balancer. Our previous work presented a novel load balancing strategy which improves the performance of a distributed Java system by avoiding the performance impacts of Major Garbage Collection, which is a common cause of performance degradation in Java applications. However, as that strategy used a static configuration, it could only improve the performance of a system if the strategy was configured with domain expert knowledge. This paper extends our previous work by presenting an adaptive GC-aware load balancing strategy which self-configures according to the GC characteristics of the application. Our results have shown that this adaptive strategy can achieve higher throughput and lower response time, compared to the round-robin load balancing, while also avoiding the burden of manual tuning.
      449Scopus© Citations 9
  • Publication
    Towards an Efficient Benchmark Generation Engine for Garbage Collection
    Garbage Collection (GC) is a key feature of many modern programming technologies. It offers significant software engineering benefits over explicitly memory management. Nonetheless, it is also a major cause of performance degradation. As the rate of adoption of GC-related technologies continues to grow, it is highly relevant to understand its performance impact. However, this is challenging due to the non-deterministic nature of GC. To tackle this problem, we present an engine (HERMES) to create realistic GC benchmarks by effectively capturing the GC/memory behaviours exhibited by real-world Java applications. Our experiments prove how HERMES can be useful to strengthen the evaluation of GC-related advancements. This is achieved by broadening the number and diversity of the test scenarios, as well as reducing the time invested in testing.
      382Scopus© Citations 1
  • Publication
    DYNAMOJM: A JMeter Tool for Performance Testing Using Dynamic Workload Adaptation
    Performance testing is a critical task to assure optimal experience for users, especially when there are high loads of concurrent users. JMeter is one of the most widely used tools for load and stress testing. With JMeter, it is possible to test the performance of static and dynamic resources on the web. This paper presents DYNAMOJM, a novel tool built on top of JMeter that enables testers to create a dynamic workload for performance testing. This tool implements the DYNAMO approach, which has proven useful to find performance issues more efficiently than static testing techniques.
      355
  • Publication
    Automated WAIT for Cloud-Based Application Testing
    Cloud computing is causing a paradigm shift in the provision and use of software. This has changed the way of obtaining, managing and delivering computing services and solutions. Similarly, it has brought new challenges to software testing. A particular area of concern is the performance of cloud-based applications. This is because the increased complexity of the applications has exposed new areas of potential failure points, complicating all performance-related activities. This situation makes the performance testing of cloud environments very challenging. Similarly, the identification of performance issues and the diagnosis of their root causes are time-consuming and complex, usually require multiple tools and heavily rely on expertise. To simplify these tasks, hence increasing the productivity and reducing the dependency on human experts, this paper presents a lightweight approach to automate the usage of expert tools in the performance testing of cloud-based applications. In this paper, we use a tool named Whole-system Analysis of Idle Time to demonstrate how our research work solves this problem. The validation involved two experiments, which assessed the overhead of the approach and the time savings that it can bring to the analysis of performance issues. The results proved the benefits of the approach by achieving a significant decrease in the time invested in performance analysis while introducing a low overhead in the tested system.
      474Scopus© Citations 11
  • Publication
    Choosing Machine Learning Algorithms for Anomaly Detection in Smart Building IoT Scenarios
    Internet of Things (IoT) systems produce large amounts of raw data in the form of log files. This raw data must then be processed to extract useful information. Machine Learning (ML) has proved to be an efficient technique for such tasks, but there are many different ML algorithms available, each suited to different types of scenarios. In this work, we compare the performance of 22 state-of-the-art supervised ML classification algorithms on different IoT datasets, when applied to the problem of anomaly detection. Our results show that there is no dominant solution, and that for each scenario, several candidate techniques perform similarly. Based on our results and a characterization of our datasets, we propose a recommendation framework which guides practitioners towards the subset of the 22 ML algorithms which is likely to perform best on their data.
      673Scopus© Citations 11