Aplicación de la simulación en tiempo real para mejorar la calidad de servicio del middleware
Authors:   , Nou Castell Ramón 
Published: July 2023

La utilización de aplicaciones de diferente naturaleza dentro de un mismo entorno, entorno heterogéneo, se está extendiendo gracias a la incorporación de técnicas de virtualización a los servidores. Compartir un servidor ofrece ventajas sobretodo en términos de eficiencia de energía, utilización del espacio o mantenimiento. La virtualización añade ventajas en la separación de las diferentes aplicaciones o entornos. Aún así los gestores de recursos para entornos heterogéneos tienen como principal dificultad ofrecer calidad de servicio (QoS) a diferentes aplicaciones, entornos o cargas. Una aplicación que realice streaming y otra que realice cálculo intensivo, normalmente , no colisionaran ya que los recursos utilizados son diferentes. Por el otro lado, colisionaran dos aplicaciones que trabajen con la CPU.<br/>Nuestra propuesta ofrece la posibilidad de introducir dentro de estos gestores de recursos la capacidad de predecir este tipo de entornos, en concreto transaccionales y Grid, para aumentar la QoS y el rendimiento. Las predicciones han de utilizar técnicas de simulación ya que la mayoria de las veces el sistema no será representable mediante técnicas analíticas, por ser un sistema saturado o tener características difíciles de representar.<br/>La simulación es una técnica utilizada para predecir el comportamiento de sistemas en multitud de áreas. Las simulaciones de componentes hardware son muy comunes, dado el coste de construcción de los sistemas simulados (procesadores, memorias...). Sin embargo, el uso de la simulación en entornos complejos, como es el middleware, y su aplicación en gestores de recursos tiene un uso muy bajo. Nosotros proponemos simulaciones ligeras capaces de obtener resultados utilizables en estos entornos.<br/>Entre las aportaciones y contribuciones de la tesis tenemos: (i) utilización de métodos de simulación para incrementar el rendimiento y la calidad de servicio de estos sistemas. (ii) ampliación de un sistema de monitorización global para aplicaciones mixtas (JAVA y C) que nos ofrece la posibilidad de conseguir información de lo que ocurre en el middleware y de relacionarlo con el sistema. (iii) creación de un gestor de recursos capaz de repartir los recursos en un entorno heterogéneo utilizando la predicción para tener en cuenta diferentes parámetros de calidad de servicio.<br/>En la tesis se muestran los mecanismos de creación de los distintos simuladores, las herramientas de obtención de datos y monitorización, así como mecanismos autónomos que pueden alimentarse de la predicción para producir mejores resultados. Los resultados obtenidos, con gran impacto en la QoS en el gestor creado para Globus, demuestran que los métodos aplicados en esta tesis pueden ser válidos para crear gestores de recursos inteligentes, alimentados de las predicciones del sistema para tomar decisiones. Finalmente, utilizamos las simulaciones realizadas incorporándolas dentro de un prototipo de gestor de recursos heterogéneo capaz de repartir los recursos entre un entorno transaccional y un entorno Grid dentro del mismo servidor.

Using different applications inside the same environment, heterogeneous environment, is getting more and more usual due the incorporation of the virtualization inside servers. Sharing a server offer advantages in different levels: energy, space, management. Virtualization helps to separate different applications or environments. On the other hand, resource managers have as principal issue offer Quality of Service for different applications, environments or workloads. A streaming server and a CPU intensive application would not collide; the resources they need are different. However, two applications that need CPU processing power will collide.<br/>Our proposal offers the possibility to introduce inside the resource manager the capacity to predict these environments. We will work with transactional and Grid environments, and we will increase the QoS and the performance. We need to use simulation techniques for our predictions because a large number of times the system won't be able to be modelled with analytic techniques, for being a saturated system or having features that are hard to reproduce.<br/>Simulation is a technique used to predict the behaviour of multiple systems in a large number of areas. Hardware simulations are very common because the building/testing cost of the simulated system (processor, memory, cache,...) is high. However, using simulation in complex environments, as the middleware, and its use in resource management is low. We propose light simulations that can obtain results that can be used in these environments.<br/>We will enumerate our contributions: (i) Use simulations to increase the performance and the QoS of those systems. (ii) Improve a global monitoring system for mixed applications (JAVA and C) that gives us information about what happens in the middleware and in the system. (iii) Build a resource manager that can share the resources in a heterogeneous environment an use the prediction to ensure the different QoS parameters that we provide.<br/>In the thesis we show how we built the different simulators, the different tools to obtain information and monitorize the applications, and finally the autonomic mechanisms that can feed with the prediction to obtain better results. Results obtained, with great success in the case of the resource manager created for Globus, show and demonstrate that the applied methods in this thesis are suitable to create intelligent resource managers, fed with predictions of the system to take decisions. Finally, we add the built simulations inside a heterogeneous resource manager that shares resources between a transactional environment and a Grid environment inside the same server.