FERRAMENTAS LINUX: O Impacto do PGO no Golang: Melhorias de Desempenho e Economia de CPU

segunda-feira, 20 de maio de 2024

O Impacto do PGO no Golang: Melhorias de Desempenho e Economia de CPU

 

Lançado há mais de um ano, o Golang 1.20 trouxe suporte para Profile Guided Optimizations (PGO). 

Desde então, essa tecnologia foi aprimorada com o Go 1.21, resultando em binários de 2 a 7% mais rápidos. Essa abordagem de otimização, comum em outros compiladores, tem sido elogiada pelos engenheiros da Cloudflare devido à economia significativa de CPU.

O suporte do compilador PGO é excelente, especialmente se houver uma coleção adequada de amostras para criar um perfil. Isso permite que o compilador faça otimizações mais informadas. Embora envolva uma etapa extra em comparação com otimizações mais simples, os benefícios podem ser significativos. No caso do PGO no Golang, algumas bases de código podem ver melhorias de até 14%.

A Cloudflare, que depende de milhares de núcleos de CPU globalmente para seus serviços baseados em Go, explorou recentemente o impacto do PGO. Os resultados foram promissores:

"Após a implementação do PGO, usamos cerca de 97 núcleos a menos, uma redução de aproximadamente 3,5%. Esse valor está em linha com a documentação upstream, que sugere economias entre 2% e 14%."

Outro dado relevante é o uso médio de CPU no mesmo horário em dias diferentes. Nos sete dias anteriores ao lançamento, o uso médio foi de 3.067,83 núcleos, enquanto nos sete dias após o lançamento foi de 2.996,78, resultando em uma economia de 71 CPUs. Embora não tão impressionante quanto a economia de 97 CPUs, ainda assim é substancial.

Esses resultados comprovam os benefícios do PGO: sem modificar o código, a Cloudflare conseguiu economizar tempo de CPU em vários servidores. Considerando os custos atuais de servidores, energia e resfriamento, essa economia é significativa. Essa eficiência é alcançada com um investimento mínimo. No futuro, a Cloudflare pretende explorar mais perfis e otimizações adicionais, como BOLT ou LTO, para melhorar ainda mais seu desempenho.

Mais detalhes podem ser encontrados no blog da Cloudflare.




Fonte 

Até a próxima !!

Nenhum comentário:

Postar um comentário