No núcleo do Linux, o processamento de pacotes UDP recebidos foi acelerado em 12%.

Um conjunto de alterações foi aceito na base de código que forma o núcleo do Linux 7.0, durante testes de estresse em uma rede de 100 gigabits, permitindo melhorar o desempenho do processamento de pacotes UDP recebidos em 12%. A otimização foi implementada através da injeção manual de duas funções. Observa-se que a função timecounter_cyc2time() pode ser chamada a cada pacote recebido, visto que os protocolos modernos exigem a contabilização do tempo de chegada do pacote. Devido a isso, em uma situação de alta carga servidor a função timecounter_cyc2time() pode ser chamada mais de 100 milhões de vezes por segundo.

Nesta situação, as otimizações automáticas aplicadas pelo compilador, como FDO (Feedback Directed Optimization), LTO (Link Time Optimization) e PGO (Profile Guided Optimization), não conseguiram detectar o segmento crítico do código e o ignoraram, aparentemente porque os drivers de placas de rede são fornecidos na forma de módulos separados. No entanto, o desdobramento inline manual da função resultou em um ganho significativo de desempenho.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster