Estoy un poco perdido por esto.
Estoy ejecutando una gran importación en apertura, y está causando que mi sistema se ralentice a un rastreo completo, básicamente lo hace inutilizable para cualquier cosa, incluso navegar por la web. Como esto parece un poco antinatural, pasé un poco de tiempo mirando a mi alrededor.
La ejecución ps -Al
muestra que, aparentemente de forma predeterminada, el Dock
, Finder
y SystemUIServer
todos parecen ejecutarse con una prioridad mucho más baja que las aplicaciones de usuario. Mientras que las aplicaciones de usuario suelen tener una prioridad de 33, el Dock, Finder, etc. tienen una prioridad de 53.
El resultado final es que CUALQUIER tarea intensiva del procesador bloquea por completo la interfaz de usuario y deja el sistema inutilizable hasta que finalice.
De todos modos, el uso renice -20 -p <prid>
los sube a la misma prioridad que el resto de la interfaz de usuario del usuario y da como resultado que no tenga que esperar 1-3 segundos (!) Para que la interfaz de usuario responda a algo tan simple como un clic del mouse.
Thad dijo: Tengo dos preguntas:
¿Hay alguna razón por la que no debería alterar la prioridad del hilo del buscador de esta manera?
¿Hay alguna forma de hacer que el cambio de prioridad sea persistente, por ejemplo, para que permanezca así después del reinicio?
fuente
Respuestas:
No estoy seguro de que alguien que no sea el propio desarrollador de Apple pueda responder esta pregunta, los secretos internos de Finder son su dominio. Si cree que hay algunos problemas de retraso notables con la interfaz de usuario, es posible que desee enviar un informe de error a Apple al respecto.
A juzgar por el sonido de las cosas (los procesos toman intencionalmente todos los recursos), este es un caso marginal para la administración de la memoria. Todavía tengo que ver que un sistema funcione al máximo sin tener entre 10 y 20% de recursos libres, como una ayuda de amortiguación.
Por curiosidad, ¿cuáles son estos procesos que estás ejecutando?
fuente
"Estoy ejecutando una gran importación en apertura, y está causando que mi sistema se ralentice completamente"
Entonces Aperture es (probablemente) el programa que desea
renice
, no los demás. Los procesos que mencionó están ajustados en relación con las aplicaciones de usuario promedio, de modo que las aplicaciones de usuario obtienen mayor prioridad y responden, ya que son lo que los usuarios usan la mayor parte del tiempo.Su caso es el menos común, donde una aplicación realiza una tarea intensiva a largo plazo y el usuario quiere hacer otra cosa al mismo tiempo. De manera predeterminada, son las aplicaciones del usuario las que tienen prioridad para que estas tareas intensivas obtengan más recursos y se completen antes.
Por cada usuario que se queja de que otras aplicaciones no responden lo suficiente, hay otro usuario que se queja de que la aplicación activa no se ejecuta lo suficientemente rápido.
Si está ejecutando una tarea larga de uso intensivo de recursos y sabe que desea que tenga menor prioridad para poder utilizar otros procesos mientras se completa la tarea, y no le importa si la tarea intensiva lleva más tiempo, debe reducir la prioridad de El proceso que ejecuta la tarea intensiva.
En cuanto a su segunda pregunta, hay varias soluciones posibles para hacer la
renice
más automática. Por ejemplo, podría crear un applet de script que ejecute Aperture con una prioridad inferior y usarlo para iniciar Aperture. O puede iniciar Aperture a través de un script de shell almacenado en un archivo * .command (sin embargo, eso abrirá Terminal y ejecutará el comando en una ventana de terminal, que puede no ser lo que desea). Cada uno de estos está un poco involucrado. Si desea ejemplos, puedo ver cómo proporcionarlos más adelante.fuente
renice
cosas, pero el problema real es la prioridad del buscador.renice
opera en procesos, no en subprocesos.Planteé una pregunta similar, hace mucho tiempo, en ServerFault, aunque no estaba tan específicamente enfocado en el Finder (aunque también encuentro que el Finder es intolerablemente lento). ¿Cómo "cambiar la forma" de forma permanente de un proceso en Mac OS X (o iOS, etc.)? No se obtuvo mucha información allí, en cuanto a una buena manera de hacer esto ... o en cuanto a por qué es así ...
Todavía pienso en esto a menudo, y en realidad hay algunas maneras de reflexionar sobre los "conceptos básicos" si te atreves. Como se mencionó anteriormente, puede hacer varios esquemas de shell ... pero un buen lugar para tales fechorías son las diversas
/etc/rc*
rutinas de arranque ... que ya están allí ... configurando todo tipo de parámetros de sistema arbitrarios (definidos por Apple). edítelos o busque cómo agregar sus propias rutinas al proceso de arranque.Además, si realmente quieres hacer explotar tu cabeza ...
sudo sysctl list
y es clave para la caja de pandora, también conocida como/etc/sysctl.conf
fuente