Tracing and troubleshooting in-network computation - Castanheira, Lucas Barbosa (2022)
Há um movimento crescente para descarregar a funcionalidade, por exemplo, TCP ou armazenamentos de valores-chave, na rede - em SmartNICs ou planos de dados programáveis. Embora o descarregamento prometa aumentos significativos de desempenho, esses dispositivos programáveis geralmente fornecem pouca visibilidade de seu desempenho. Além disso, muitas ferramentas existentes para analisar e depurar problemas de desempenho, por exemplo, rastreamento distribuído, não se estendem a esses dispositivos. Motivado por essa falta de visibilidade, a primeira metade deste trabalho apresenta o de sign e implementação do Foxhound, um framework de observabilidade para computação em rede. Esse framework apresenta uma linguagem de consulta, um compilador e uma camada de abstração de armazenamento coprojetados para expressar, capturar e analisar rastreamentos distribuídos e seus dados de desempenho em uma infraestrutura que inclui servidores e planos de dados programáveis. Embora o Foxhound seja nossa prova de conceito para rastreamento flexível na rede, descobrimos que o paradigma de rastreamento tradicional que o Foxhound incorpora pode sofrer de problemas de escalabilidade devido às limitações de hardware dos planos de da dos programáveis. Em nosso esforço para mitigar isso, identificamos um subconjunto de consultas de rastreamento comuns que podem ser hiper-otimizadas mesmo além das otimizações do Foxhound. Essas otimizações representam um afastamento do rastreamento tradicional e constituem outro framework, o Mimir, apresentado na segunda metade deste trabalho. O Mimir troca a flexibilidade pela eficiência, explorando um conjunto de opções de design que otimizam tarefas comuns de diagnóstico e localização. Nossas avaliações usando três aplicativos descarregados representativos em um testbed baseado em Intel To fino, um emulador e um simulador mostram que o Mimir pode suportar um subconjunto de tarefas de rastreamento comuns em escala com overhead significativamente menor do que o Foxhound. Além disso, nossos experimentos com um microsserviço do DeathStar Bench aprimorado por computação em rede demonstram a utilidade de nossa abordagem para diagnóstico de fim-a-fim.