Tengo un sistema de cuatro núcleos con una aplicación de terceros que de vez en cuando realiza varios procesos (siempre el mismo ejecutable pero varias instancias) y toma el 100% del tiempo de la CPU. También tengo un par de servicios web ejecutándose en la misma caja (IIS y de terceros).¿Cómo establecer la afinidad del procesador en un ejecutable en Windows XP?
El problema con todos los núcleos que están ocupados es que hace que este servidor web de terceros agote el tiempo de espera (IIS funciona bien, pero más lento de lo normal). No tengo control sobre el servidor web de terceros, es parte del producto más grande y tiene que estar operativo. Entonces, traté de jugar con la afinidad del procesador (a través de SysInternals Process Explorer) y limitar esos molestos procesos a 3 núcleos de 4 y dedicar el 4to núcleo al servidor web de terceros, y parece funcionar bastante bien.
El problema es que solo establece afinidad en el proceso en ejecución y no en el nivel ejecutable, por lo que después de que esos procesos finalicen y vuelvan a reaparecer como un nuevo proceso, todo vuelve a ser igual: toman los 4 núcleos. Por lo tanto, he buscado en Google esta utilidad ImageCfg.exe de Microsoft, pero no puedo encontrarla en el sitio web de Microsoft para descargarla y veo que algunas personas la probaron y ahora se quejan de que realmente no funciona.
¿Hay alguna manera de mantener la afinidad con el ejecutable?
Tu primera llamada debería ser del editor del software en cuestión. Pregúnteles cómo limitar el uso del hilo. – NotMe
Sin embargo, el problema sigue siendo interesante porque el software puede no tener esa característica. Y ciertamente hay otro software por ahí que no ... sería molesto tener que llamar al proveedor cada vez. – ine