Programmation » [Posix Threads] - Condition Variables && Cpu Usage
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 10:06:35,
By AltarAprès quelques tests sur ces superbes choses que sont les variables de conditions, je suis confronté à un petit problème.
Exemple : 2 threads qui s'échangent des données à travers un petit buffer où le read se met en attente (sur une variable de condition) lorsque le buffer est vide. Apparement l'utilisation cpu a tendance à monter en flêche lorsqu'un des threads passe en wait (on arrive à 25% d'utilisation cpu).
En surfant j'ai vu que quelques personnes avaient ce problème mais je n'ai pas trouvé de solution. Si quelqu'un qui a déjà été confronté à ce problème pouvait partagé ses expériences, je l'en remercie d'avance.
Exemple : 2 threads qui s'échangent des données à travers un petit buffer où le read se met en attente (sur une variable de condition) lorsque le buffer est vide. Apparement l'utilisation cpu a tendance à monter en flêche lorsqu'un des threads passe en wait (on arrive à 25% d'utilisation cpu).
En surfant j'ai vu que quelques personnes avaient ce problème mais je n'ai pas trouvé de solution. Si quelqu'un qui a déjà été confronté à ce problème pouvait partagé ses expériences, je l'en remercie d'avance.
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 10:47:53,
By AltarOk, je vais tenter d'isoler les éléments pour faire un code court et lisible illustrant le problème.
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 12:10:49,
By zion
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 12:13:29,
By philfrDis-nous aussi sur quelle version de quel OS et le cas échéant quelle version de libraire pthread.
N'oublie pas que en sortant de ton pthread_cond_wait, tu dois toujours checker si la condition est effectivement présente pour continuer, sinon tu dois repartir de suite dans ton wait.
Cela dit, les threads c'est mal
...
Hormis le vrai temps réel, ou la vraie concurrence cpu-intensive, la plupart des problèmes résolus aujourd'hui avec des threads peuvent en général être résolus par select() ou assimilé... Et c'est une tendance que j'observe de plus en plus dans les applications type serveur ou GUI. Je suis prêt à argumenter davantage dans un autre débat bien sûr...
N'oublie pas que en sortant de ton pthread_cond_wait, tu dois toujours checker si la condition est effectivement présente pour continuer, sinon tu dois repartir de suite dans ton wait.
Cela dit, les threads c'est mal
...Hormis le vrai temps réel, ou la vraie concurrence cpu-intensive, la plupart des problèmes résolus aujourd'hui avec des threads peuvent en général être résolus par select() ou assimilé... Et c'est une tendance que j'observe de plus en plus dans les applications type serveur ou GUI. Je suis prêt à argumenter davantage dans un autre débat bien sûr...
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 12:17:39,
By zionphilfr> Je lance le thread
Je suis le Roy
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 19:38:50,
By AltarOk, j'ai résolu le problème. Apparement, le scheduleur changeait de thread à la fin de chaque recv (ne me demander pas pourquoi) et certains recv étaient vraiment très court ce qui provoquait un swap entre les threads très fréquents ==> une utilisation cpu fort élevée.
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 20:30:49,
By philfrQuel OS ?
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 21:12:30,
By GeorgioDebian Sarge
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 21:34:28,
By philfrDebian Sarge c'est pas un OS c'est une distribution GNU/Linux
Kernel 2.4 ou 2.6 ? Standard package Debian ou recompilé avec tes options ?
Puis d'abord, t'es pas Altar toi, pourquoi c'est toi qui réponds ?...
Latest Edition: 18/04/2006 @ 21:35:06
Kernel 2.4 ou 2.6 ? Standard package Debian ou recompilé avec tes options ?
Puis d'abord, t'es pas Altar toi, pourquoi c'est toi qui réponds ?...
Latest Edition: 18/04/2006 @ 21:35:06
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 22:28:13,
By GeorgioOups désolé philfr ^^ ( honte sur moi pour la confusion entre OS et distrib ^^ )
J'reponds pour Altar parce que j'connais un peu la machine pour laquelle il bosse
Oups oublié de noter :
2.6.14-2 et j'dirai qu'il a été recompilé à la sauce altar
(Et je réponds pour lui, car comme il est pas là il aura peut etre la surprise d'une jolie réponse lors de sa reconnexion
)
Latest Edition: 18/04/2006 @ 22:31:19
J'reponds pour Altar parce que j'connais un peu la machine pour laquelle il bosse
Oups oublié de noter :
2.6.14-2 et j'dirai qu'il a été recompilé à la sauce altar
(Et je réponds pour lui, car comme il est pas là il aura peut etre la surprise d'une jolie réponse lors de sa reconnexion
)Latest Edition: 18/04/2006 @ 22:31:19
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 22:51:57,
By ovhGeorgio et Altar sont dans un bateau...
Latest Edition: 18/04/2006 @ 22:52:15
Latest Edition: 18/04/2006 @ 22:52:15
Je n'ai rien à voir avec www.ovh.com
[Posix Threads] - Condition Variables && Cpu Usage
Published 18/04/2006 @ 23:03:00,
By GeorgioBon voila altar pour le coming out c'est fait ^^
[Posix Threads] - Condition Variables && Cpu Usage
Published 19/04/2006 @ 13:23:15,
By Altarovh > Je ne permets pas de telles accusations
Latest Edition: 19/04/2006 @ 15:00:34
Latest Edition: 19/04/2006 @ 15:00:34
Login
Sign Up
Password Lost
List of Categories
Who has read this topic?
Add Reply
Printable version
Activate notification