Zéro appel système : création d’un serveur web haute performance avec io_uring
Cet article détaille l’évolution de la création de serveurs web haute performance, du pré-forking initial à select/poll, puis epoll, et enfin à l’obtention de zéro appel système grâce à io_uring. L’auteur a développé un serveur web expérimental nommé tarweb qui utilise io_uring pour ajouter de manière asynchrone toutes les opérations à une file d’attente du noyau, évitant ainsi la surcharge des appels système fréquents. Combiné à kTLS et à des fichiers sans descripteur, des améliorations de performances supplémentaires sont obtenues. Bien que des défis subsistent, tels que la gestion de la mémoire et les problèmes de sécurité d’io_uring, le projet démontre le potentiel de gains de performance significatifs dans les scénarios à forte concurrence.