1 votos

¿Cómo encuestar los niveles de utilización de CPU de una aplicación/proceso con granularidad en Terminal?

Tengo un proceso particularmente problemático en macOS que tiene una utilización de CPU del 50-100% de forma bastante consistente. El proceso parece tener una variabilidad algo alta dependiendo de varias variables.

Desafortunadamente una de las variables es el Monitor de Actividad y en consecuencia me gustaría utilizar un método basado en Terminal / shell para sondear el proceso en cuestión a diferentes frecuencias, desde frecuencias extremadamente altas hasta frecuencias más bajas a medida que empiezo a aislar algunos problemas.

¿Cómo se puede monitorear un proceso en términos de utilización de CPU a diferentes frecuencias desde la terminal?

1 votos

¿Es este un programa que has hecho tú mismo, o posiblemente uno para el que tienes acceso al código fuente? - Suena como una mala idea diagnosticar problemas monitoreando la utilización de la CPU externamente con una herramienta así - parece que te beneficiarías mucho más simplemente perfilando el programa.

0 votos

No, es un programa de terceros y parte de macOS y Apple simplemente no ha ofrecido ninguna ayuda en la situación durante dos años después de aproximadamente 15 informes a través del programa de desarrollo y demás. La verdad es que la utilización de la CPU varía según ciertos parámetros y necesito sondear el uso de CPU para este proceso específico. Supongo que voy a tener que hacer algo muy 'bruto' como agarrar información de top y extraer el campo importante, pero esperaba encontrar un método más dirigido y eficiente.

0 votos

El programa de desarrollo es el lugar incorrecto para contactar. No querrás usar top, solo perfila el programa. ¿Puedes dar más detalles sobre qué es específicamente el programa, y cuál es el problema real? Si no, es realmente difícil ofrecer mucha ayuda.

1voto

Jose Chavez Puntos 645

Para la tarea de obtener la utilización de la CPU de WindowServer en cualquier frecuencia dada, simplemente puedes ejecutar este comando con esa frecuencia:

ps -o pcpu -p $(pgrep WindowServer)

No has definido lo que significa "frecuencia extremadamente alta" y "frecuencia baja", así que debes asegurarte de que esas frecuencias se encuentran dentro del rango en el que es razonable usar un comando como el anterior.

Has pedido que no recomendemos soluciones que sean más adecuadas para resolver el problema real, así que no lo haré.

0 votos

Esto es maravilloso y ya ha ayudado mucho a ajustar algunas cosas y aislar algunos escenarios problemáticos. watch -n 0.5 ps -o pcpu -p $(pgrep WindowServer) (obviamente cambiando el 0.5 a la frecuencia que sea útil es fantástico y ha sido mucho más preciso que Activity Monitor.app. Es posible que haga un poco más con eso en términos de promediar y alimentarlo en un script, pero esto es perfecto - ¡aprecio eso!

0 votos

Como puedes implementar esto tú mismo, según tu comentario anterior, asumo que ya sabes qué está distorsionando tus resultados al usar el comando de esta manera. ¡Espero que puedas solucionar tu problema!

0 votos

Gracias, como también expliqué e importante considerar es simplemente el tiempo y la investigación vs la realidad. Hay un equilibrio que hay que encontrar y agradezco que hayas ayudado a reducir el tiempo en esta situación particular. De hecho, como mencioné, he identificado algunos problemas y ahora los he añadido a mis informes de errores de Apple también, así que esperemos ver una solución más sólida a los problemas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X