2010-03-08 9 views
9

mi hanno una caratteristica a mio CMS che consente a un utente di caricare un file zip pieno di immagini e il server li estrarre e inserire ognuno in una galleria di immagini. Ho notato che questo macina gravemente la CPU e fa rallentare altre richieste.compiti in esecuzione in background con priorità più bassa CPU

Sto pensando di utilizzare il plug-in delayed_job per delegare ogni aggiunta di immagini in background, ma voglio anche dare a quel processo una priorità della CPU inferiore in modo che non impantanarsi sul server.

Sono abbastanza fiducioso nella parte ritardo dell'esercizio, ma la parte di strozzamento è dove mi sono bloccato. C'è un modo rubino di ridurre la priorità di una chiamata di metodo?

E 'il ridimensionamento dell'immagine che causa l'masticare CPU.

Tutte le idee benvenuti :)

risposta

6

Se il CMS è in esecuzione sul sistema Linux, allora si può fare questo usando il comando "bella". "nice" avvierà un processo con una priorità più bassa. Il modo più semplice per usarlo è quello di mettere la parola davanti al tuo comando. Quindi, se si sta eseguendo il comando come

unzip uploaded-images.zip

invece eseguire

nice unzip uploaded-images.zip

Questo farà sì che il processo di decompressione per ottenere la priorità CPU più bassa, lasciando che altri processi eseguiti prima. Vedere lo man page per ulteriori opzioni, ad esempio come regolare il livello di priorità.

+0

Grazie, mi sono imbattuto in questo con google: http://stackoverflow.com/questions/1340142/preventing-delayed-job-background-jobs-from-consuming-too-much-cpu-on-a -singola-se –

Problemi correlati