Melloran o rendemento dos servidores optimizando o acceso a memoria

*Unha tese do CiTIUS demostra cómo incrementar ata un 70% o rendemento de servidores adicados a abordar a xestión de múltiples tarefas ou usuarios.*

Desde fai algún tempo, os fabricantes de procesadores apostan por incluir nos seus deseños unha ferramenta coñecida como contadores hardware, un tipo de rexistros concebidos para dar testemuña do que acontece no interior do procesador en tempo real; analizando a súa resposta, o programador pode coñecer o comportamento de todas as aplicacións que corren no seu computador antes de que a execución finalice, así como o dos diferentes threads ou ‘fíos’ –pequenos fragmentos do programa, parcialmente independentes, que traballan de maneira conxunta pero que poden ser illados para a súa execución en diferentes núcleos-. Entre outras cousas, os contadores hardware ofrecen detalles sobre o acceso aos datos de memoria destes fíos.

Servíndose desta información, o Grupo de Arquitectura de Computadores do CiTIUS conseguiu establecer novos modelos de rendemento para a súa implementación en servidores, que esencialmente contan con dúas vantaxes principais: en primeiro lugar amosan aos programadores o comportamento do seu código, dándolles pistas sobre cómo melloralo; pero ademais, permiten establecer estratexias orientadas á toma de decisións durante a execución dun programa, co obxectivo de mellorar as súas prestacións. Para iso desenvolveron unha ferramenta de propósito específico, capaz de obter a información xerada polos contadores e amosar os patróns de rendemento, de forma moi cómoda para o usuario e cunha baixa influencia no rendemento do sistema.

Esta mesma información serviulle tamén aos científicos para crear un sistema de migración de fíos, que move (‘migra’) automáticamente os threads entre os distintos núcleos dos procesadores, co obxectivo de atopar a mellor ubicación para cada un e optimizar a súa execución en tempo real, de forma transparente ao usuario. En esencia, este sistema de migración recolle constantemente información sobre o comportamento dos fíos –unha estratexia económica en termos de eficiencia, posto que o uso de contadores hardware ralentiza menos dun 2% a execución-, facendo uso dela co propósito de identificar o núcleo que se atopa nas mellores condicións para executar da maneira máis eficaz os fíos (ou os programas).

Melloras de ata un 70%

O traballo, froito dunha tese de doutoramento defendida recentemente no CiTIUS polo investigador Oscar García, foi validado logo de avaliar a precisión do sistema de migración de fíos con ensaios baseados nos NAS Parallel Benchmarks, un banco de probas deseñado por enxeñeiros da Axencia Espacial Estadounidense (NASA) para medir o rendemento dos computadores.

Durante o proceso de validación executáronse simultáneamente catro programas distintos nun servidor con idéntico número de procesadores (simulando un suposto no que catro usuarios se conectan á vez ao mesmo servidor); así, observouse que se todos os programas se executan en procesadores que acceden aos seus datos da maneira máis eficiente posible –é dicir, lendo sempre da memoria máis axeitada-, as cousas sinxelamente funcionan ben, algo mellor do que habitualmente ocorre cando o encargado do reparto é o sistema operativo.Pola contra, tan pronto como os programas len a memoria da maneira máis lenta posible, o rendemento cae estrepitosamente sen que o sistema operativo poida facer nada para arranxalo, xa que non emprega información sobre o uso da memoria.

As sucesivas probas demostraron cómo neste tipo de situacións o sistema de migración de fíos desenvolvido no CiTIUS conseguía mellorar o rendemento ata un 70%. Uns resultados que, de ser integrados no sistema operativo, poderían mellorar notablemente o rendemento en servidores con múltiples usuarios. Como explican os autores do traballo, «o salto cualitativo apreciariase especialmente en casos como os servidores de Internet ou nos adicados a problemas de simulación científica ou técnica, porque se trata de entornos onde se executan programas con grande uso de memoria e un considerable número de fíos», conclúen.

Máis información

'Hardware Counter Based Performance Analysis, Modelling, and Improvement through Thread Migration in NUMA Systems'