2011-05-14 4 views
2

J'ai un site Web où toutes les 20 minutes environ, une page très chère est atteinte, ce qui fixe le processeur à 100% et tous mes utilisateurs en souffrent. La réactivité de cette page n'est pas importante donc je me demandais en plus de Thread.Sleep(), est-ce qu'il y avait un bon moyen d'arrêter cette demande de manger le cpu?utilisation du processeur d'accélération d'une demande Web

À la votre!

+1

Pourquoi exactement cette page est-elle frappée toutes les 20 minutes? N'est-ce pas à cause des demandes des utilisateurs pour cette page? Pourquoi sont-ils garantis de frapper environ toutes les 20 minutes? –

+0

Combien de cœurs avez-vous sur le serveur? – Richard

+0

Que fais-tu sur cette page de toute façon? – IDWMaster

Répondre

1

Définissez Thread.Priority sur Lowest. L'utilisation du processeur sera toujours de 100%, mais les threads de priorité plus élevée ne souffriront pas beaucoup.

+0

Cette approche est correcte, vous pouvez être certain que vous réinitialisez la priorité du thread après le traitement de cette requête. Les threads du pool de threads sont renvoyés au pool pour traiter les demandes futures. Une priorité de thread (ou de processus) généralement changeante est la mauvaise approche (elle masque généralement le problème plutôt que de le réparer, et ouvre la possibilité d'inversion de priorité). – Richard

Questions connexes