Impostare un livello più alto per un processo è un modo efficace per ridurne l'impatto sul carico del sistema / sul tempo della CPU?


10

Ho un lavoro cron rsync che sta spingendo il carico del server e innescando avvisi di monitoraggio. Se imposto che il lavoro venga eseguito con un livello elevato, ciò ridurrebbe effettivamente l'impatto che ha sui valori di carico del sistema?


Per rsync, sarebbe più efficace utilizzare i suoi switch per ridurre la compressione o limitare l'utilizzo della larghezza di banda.
Nemo,

Risposte:


9

Non ridurrà il tuo carico.

Consentirà ad altri processi di utilizzare il tempo della CPU più spesso se esiste una possibile contesa di risorse (diversi processi "competono" per un tempo CPU non sufficiente).


9

La modifica del valore corretto non ridurrà direttamente il carico del sistema. Può tuttavia essere utilizzato per lasciare più risorse disponibili per i processi rimanenti, che sospetto sia ciò che desideri davvero.

Da http://linux.101hacks.com/monitoring-performance/hack-100-nice-command-examples/

Il kernel decide quanto tempo del processore è necessario per un processo in base al buon valore. L'intervallo di valori possibili è compreso tra -20 e 20. Un processo che ha un valore di -20 è una priorità molto alta. Il processo che ha un buon valore di 20 ha una priorità molto bassa.

Quindi sì, vuoi eseguire il processo cron a un livello superiore rispetto agli altri processi se vuoi assicurarti che altri processi abbiano la priorità.

Per fare questo vuoi che il tuo cron script sia eseguito in questo modo:

/bin/nice -n 10 /path/to/cron-script

Questo eseguirà lo script cron a una gradualità aumentata di 10. Probabilmente vorrai provare un po 'per trovare un buon equilibrio (gioco di parole non previsto) tra i processi rimanenti e il tempo di esecuzione dello script.

Vedi anche Com'è bello lavorare? e http://www.cyberciti.biz/faq/change-the-nice-value-of-a-process/ per maggiori dettagli.


5

È improbabile che la modifica del buon livello di un processo influisca sul valore di caricamento del sistema. Il valore di caricamento del sistema è la lunghezza media della coda di esecuzione , che è fondamentalmente il numero di processi che desiderano utilizzare la CPU.

Se stai eseguendo un processo associato alla CPU (rsync non lo è, ma solo per esempio), allora vorrà sempre usare il tempo della CPU ogni volta che ce ne sono alcuni disponibili. Dal momento che vuole sempre essere eseguito, contribuirà con un valore di carico di 1,0 al valore di carico del sistema. Non importa quale sia il buon livello del processo, poiché la lunghezza media della coda di esecuzione non è influenzata dall'ordine dei processi nella coda di esecuzione.


Questo è importante da ricordare. Se esegui molti processi, il carico del sistema sembrerà molto elevato anche se in realtà nessun lavoro reale viene rallentato. In alcuni casi il caricamento rivela un vero problema, ovvero che Linux non è in grado di consentire al processo corretto di utilizzare tutte le risorse che potrebbero effettivamente utilizzare senza problemi (tutti vengono lasciati in attesa per la maggior parte del tempo senza alcun guadagno).
Nemo,

3

È possibile prendere in considerazione 3 modi per ridurre l'impatto del processo sul carico del sistema / sul tempo della CPU:

  • Utilizzare il nicecomando per ridurre manualmente la priorità dell'attività.
  • Utilizzare il cpulimitcomando per mettere in pausa ripetutamente il processo in modo che non superi un certo limite.
  • Usa Linux built-in control groups, un meccanismo che dice allo scheduler di limitare la quantità di risorse disponibili per il processo.

risorse

http://blog.scoutapp.com/articles/2014/11/04/restricting-process-cpu-usage-using-nice-cpulimit-and-cgroups


Sicuramente vuoi usare i cgroup per bilanciare le risorse del sistema. Ciò consente di partizionare le risorse come desiderato (CPU, memoria, I / O del disco, larghezza di banda del disco) e in situazioni di basso carico anche i processi di "bassa priorità" ottengono le massime prestazioni a differenza dei trucchi in modalità utente che spesso finiscono per rallentare continuamente il processo di bassa priorità.
Mikko Rantalainen il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.