4 commentaires
Ça dépend comment tu remontes les données. Si tu utilises BPF_PERF_OUTPUT et que tu as énormément d'événements, tu satures le buffer. Passe sur BPF_RINGBUF si ton kernel est assez récent.
struct {
__uint(type, BPF_MAP_TYPE_RINGBUF);
__uint(max_entries, 256 * 1024);
} rb SEC(".maps");
Regarde aussi si tu fais pas trop de maps lookups complexes dans ton code BPF. Si tu fais des boucles ou des accès trop fréquents, ça finit par se sentir sur le CPU scheduler.
Je suis passé sur le Ring Buffer et j'ai réduit la taille des données copiées. La latence est redevenue normale. Merci pour le coup de main !
Laisser une réponse
Vous devez être connecté pour poster un message !
J'essaie de profiler mes syscalls en prod avec un outil basé sur eBPF mais je vois des pics de latence de dingue sur l'app. C'est censé être safe non ?