Publication:
Desarrollo de extensiones para herramientas de monitorización de rendimiento de código abierto

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2020-09
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
PMCtrack es una herramienta de código abierto para Linux que permite monitorizar el rendimiento de las aplicaciones haciendo uso de los contadores hardware del procesador (PMCs - Performance Monitoring Counters). Esta herramienta permite recabar valores de métricas relevantes sobre la ejecución de una aplicación, como el número de instrucciones por ciclo, o la tasa de fallos de predicción de saltos. Asimismo, PMCTrack proporciona información de monitorización hardware adicional no accesible mediante PMCs, como por ejemplo, el consumo de potencia o valores precisos del ancho de banda con memoria consumido por una aplicación. La flexibilidad de su API para recabar métricas de rendimiento desde distintos componentes del sistema operativo (SO), o el hecho de que está implementada en un módulo del kernel —lo cual permite extender la funcionalidad de la herramienta sin reiniciar el SO —, son algunas de las ventajas más relevantes de PMCTrack. A pesar de sus ventajas, PMCTrack requiere actualmente un parche del kernel para funcionar, y gestiona los contadores hardware directamente, no haciendo uso del subsistema estándar de Linux para esta tarea (perf events). El objetivo principal del proyecto es dar los primeros pasos para permitir que PMCTrack pueda en un futuro llegar a funcionar en versiones de kernel Linux sin modificar. Para ello, en el proyecto se ha procedido a la creación de un backend de PMCTrack usando perf events —cuya API del kernel tiene escasa documentación—, y a la adaptación de los distintos componentes de espacio de kernel a nuevas versiones de Linux. Para llevar a cabo la evaluación del nuevo soporte añadido en PMCTrack, se ha realizado una validación exhaustiva del backend creado y se ha procedido a analizar la sobrecarga introducida en la lectura de contadores hardware, llevando a cabo una comparativa entre distintas herramientas y mecanismos disponibles.
PMCtrack is an open-source performance monitoring tool for GNU/Linux that allows to monitor application performance using the processor hardware counters (PMCs – Performance Monitoring Tools). This tool allows to collect relevant metric values about the execution of an application, such as the number of instructions per cycle or the jump prediction failure rate. Also, PMCtrack provides additional hardware monitoring information not accesible through PMCs, such as power consumption or precise values of the bandwith with memory consumed by an appliation. The flexibility of its API to collect performance metrics from different components of the operatyng sistem (OS), or the fact that it is actually implemented in a kernel module —which allows to extend the functionality of the tool without restarting the OS —, are some of the most relevant advantages of PMCtrack. Despite its advantages, PMCtrack currently requires a kernel patch to work, and manages the hardware counters directly, not making use of the standard Linux subsystem from this task (perf events). The main objective of the project is to take the first steps to allow PMCtrack to work on unmodified Linux kernel versions in the future. To achieve this goal, the project has proceeded to create a PMCtrack backend using perf events —whose kernel API has little documentation — and to adapt the different kernel space components to new versions of Linux. To carry out the evaluation of the new support added in PMCtrack, an exhaustive validation of the created backend has been carried out and the overload introduced in the reading of hardware meters has been analyzed, carrying out a comparison between different tools and mechanisms available.
Description
Trabajo de Fin de Grado en Ingeniería Informática, Facultad de Informática UCM, Departamento de Arquitectura de Computadores y Automática, Curso 2019/2020
Unesco subjects
Keywords
Citation