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?
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?
Risposte:
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.
È 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.
È possibile prendere in considerazione 3 modi per ridurre l'impatto del processo sul carico del sistema / sul tempo della CPU:
nice
comando per ridurre manualmente la priorità dell'attività.cpulimit
comando per mettere in pausa ripetutamente il processo in modo che non superi un certo limite.built-in control groups
, un meccanismo che dice allo scheduler di limitare la quantità di risorse disponibili per il processo.risorse