Donné: multithread (~ 20 threads) application C++ sous RHEL 5.3. Lors d'un test sous charge, le haut indique que l'utilisation du processeur saute dans la plage de 10 à 40% toutes les secondes. La plupart des threads implémentent un pattern de design d'objet actif: thread a une file d'attente thread-safe, les requêtes des autres files sont poussées vers la queue, tandis que le thread interroge uniquement la file d'attente et traite les requêtes entrantes . La requête traitée entraîne l'envoi d'une nouvelle requête au thread de traitement suivant.C++ process cpu utilisation jump provoque la détection
Le processus dispose de plusieurs connexions TCP/UDP sur chacune des données reçues/envoyées à une charge élevée.
Je sais que je n'ai pas fourni de données suffisantes. C'est une application assez importante, et je ne connais pas bien toutes ses parties. Il est maintenant porté à partir de Windows sur Linux via la bibliothèque ACE (utilisé pour la partie réseau). Supposant que le problème se situe dans l'application et non dans l'externe, quelles sont les techniques/outils/approches qui peuvent être utilisés pour découvrir le problème? Par exemple, je soupçonne que cela peut être causé par un conflit mutex.
Alors, quel est exactement le problème? Haute utilisation du processeur? Ne vous attendez pas à ce que "sous charge"? –
Je m'attends à une utilisation stable du CPU, alors qu'il saute constamment – dimba
Was est stable sur Windows? –