Regarde tes queues de submission et completion. Si tu ne batches pas assez tes requêtes `io_uring` ne va pas montrer son potentiel. Faut envoyer un paquet de requêtes en un seul `io_uring_enter`.
Active `IORING_SETUP_SQPOLL` si c'est possible pour ton workload. Ça permet au kernel de sonder la queue de soumission au lieu d'attendre des interruptions. Moins de context switch c'est mieux pour la latence. Par contre ça consomme un CPU core à fond.
Vérifie la version de ton kernel. Les perfs d'`io_uring` ont pas mal évolué avec les noyaux récents. Si tu es sur un vieux 5.4 ou 5.8 tu pourrais rater des optims. Un 5.15+ c'est mieux.
uname -r
J'ai up le batching des requêtes de 1 à 16 et là c'est le jour et la nuit. J'avais pas assez de requêtes en vol pour que `io_uring` soit vraiment efficace. Merci pour le tuyau
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
valerie64
Membre depuis le 14/03/2019actif
J'utilise `io_uring` pour des opérations de fichier intensives et je ne vois pas l'amélioration de perf attendue. J'ai l'impression que c'est même plus lent par moments que `epoll` classique
Y'a des tricks pour tuner `io_uring` ou des choses à vérifier côté kernel