Perché il Finder funziona con una priorità di processo così bassa?

13

Sono un po 'perso su questo.
Sto eseguendo una grande importazione in apertura, e sta facendo rallentare il mio sistema fino alla ricerca per indicizzazione completa, praticamente rendendolo inutilizzabile per qualsiasi cosa, persino navigando sul web. Dato che questo sembra un po 'innaturale, ho passato un po' di tempo a guardarmi intorno.

L'esecuzione di ps -Al mostra che, apparentemente per impostazione predefinita, Dock , Finder e SystemUIServer sembrano essere eseguiti con una priorità molto inferiore rispetto alle applicazioni userland. Mentre le applicazioni utente hanno in genere una priorità di 33, il Dock, il Finder, ecc. Hanno una priorità di 53.

Il risultato finale è QUALSIASI attività intensiva del processore che oscura completamente l'interfaccia utente e rende il sistema inutilizzabile fino al termine.

Ad ogni modo, utilizzando renice -20 -p <prid> li raggiunge con la stessa priorità del resto dell'interfaccia utente userland e non devi attendere 1-3 secondi (!) affinché l'interfaccia utente risponda a qualcosa di semplice come un mouse fai clic.

Thad ha detto, ho due domande:
C'è qualche ragione per cui non dovrei alterare la priorità del thread del finder come questo?
Esiste un modo per rendere persistente la modifica della priorità, ad es. quindi rimane così dopo il riavvio.

    
posta Fake Name 16.11.2010 - 07:23
fonte

3 risposte

1

Non sono sicuro che nessuno a corto di sviluppatori di Apple sarebbe in grado di rispondere a questa domanda, i segreti interni del Finder sono il loro dominio. Se pensi che ci siano alcuni problemi di lag evidenti con l'interfaccia utente, potresti voler inviare una segnalazione di bug ad Apple al riguardo.

A giudicare dal suono delle cose (i processi che prendono intenzionalmente tutte le risorse) questo è un caso marginale per la gestione della memoria. Devo ancora vedere un sistema che funziona al meglio senza risorse attorno al 10-20%, come aiuto per il buffering.

Semplicemente curioso, quali sono questi processi stai utilizzando?

    
risposta data 13.12.2010 - 04:56
fonte
1

"Sto eseguendo un'importante importazione in apertura e il mio sistema rallenta fino alla ricerca per indicizzazione completa"

Allora Aperture è (probabilmente) il programma che vuoi renice , non gli altri. I processi che hai citato sono ottimizzati rispetto alle applicazioni utente medie, in modo che le applicazioni utente abbiano una priorità più alta e rimangano sensibili, poiché sono ciò che gli utenti usano la maggior parte del tempo.

Il tuo caso è il meno comune, in cui un'applicazione esegue un'attività intensiva a lungo termine e l'utente desidera fare qualcos'altro allo stesso tempo. Per impostazione predefinita, sono le applicazioni dell'utente a essere prioritarie, in modo che queste attività intensive ottengano più risorse e vengano completate prima.

Per ogni utente che si lamenta che altre applicazioni non sono abbastanza reattive, c'è un altro utente che si lamenta che l'applicazione attiva non è abbastanza veloce.

Se si sta eseguendo un'attività lunga e ad alto consumo di risorse e si sa che si desidera avere una priorità più bassa in modo da poter utilizzare altri processi mentre l'attività è completata, e non ci si preoccupa se l'attività intensiva richiede più tempo, è necessario ridurre la priorità del processo che esegue l'attività intensiva.

Per quanto riguarda la tua seconda domanda, ci sono diverse soluzioni possibili per rendere il renice più automatico. Ad esempio, è possibile creare un'applet di script che esegue Aperture con priorità più bassa e utilizzarlo per avviare Aperture. Oppure puoi avviare Aperture tramite uno script di shell memorizzato in un file * .command (tuttavia, questo aprirà Terminal ed eseguirà il comando in una finestra di terminale, che potrebbe non essere quello che desideri). Ognuno di questi è un po 'coinvolto. Se desideri esempi, posso vedere di fornirli in un secondo momento.

    
risposta data 26.08.2011 - 07:24
fonte
1

Ho posto una domanda simile - molto tempo fa, su ServerFault - sebbene non fosse specificamente focalizzato sul Finder (anche se trovo che il Finder sia intollerabilmente lento). Come "rinominare" in modo permanente un processo su Mac OS X (o iOS, ecc.) Non sono state raccolte molte informazioni - per quanto riguarda un buon modo per farlo ... o perché è così ..

Ci ripenso spesso a questo, e ci sono in realtà alcuni modi per confondere le "basi" se ne hai il coraggio. Come accennato in precedenza, puoi fare vari borbottii di shell .. ma un buon posto per tali misfatti sono le varie routine di boot di /etc/rc* .. che sono già in alto ... impostando tutti i tipi di parametri di sistema arbitrari (definiti dalla mela) per tu. o modificale o cerca come aggiungere le tue routine al processo di avvio.

anche, se vuoi davvero far esplodere la testa ..

sudo sysctl list ed è la chiave per la casella di Pandora, alias /etc/sysctl.conf

    
risposta data 28.06.2012 - 08:16
fonte

Leggi altre domande sui tag