Statistiche: tempo CPU vs tempo trascorso. Cosa è più importante?


9

Quando si esegue il tuning delle prestazioni, ciò che è più importante:

  • Tempo CPU o tempo trascorso?
  • Ci sono scenari in cui uno di questi è più importante dell'altro?

Un esempio: mentre l'ottimizzazione delle prestazioni il tempo della CPU si riduce del ~ 38% ma il tempo trascorso aumenta del ~ 22%. Questo è un miglioramento ?


5
Importante per chi? I tuoi requisiti possono differire dai miei. Per la maggior parte dei miei clienti, il tempo trascorso (tempo trascorso dagli utenti in attesa) è molto più importante del tempo della CPU, quindi no, non sarebbe un miglioramento. Le CPU svolgono meno lavoro ma, con ogni probabilità, vengono utilizzate risorse più scarse per compensare (in genere I / O). Potresti avere tipi di contatori bean IT che valutano il tempo della CPU per il tempo trascorso, perché sono sintonizzati per avvisi su picchi di CPU o cosa hai. Hanno esigenze diverse rispetto agli utenti finali, ma potrebbe essere necessario soddisfarle entrambe. Non penso che ci sia una risposta facile.
Aaron Bertrand

Se la query viene eseguita molto spesso, la CPU ridotta può comportare un tempo complessivo ridotto?
EnterTheCode

Con l'esempio che hai dato, è improbabile.
Aaron Bertrand

Risposte:


14

CPU Time è la quantità di tempo del processore impiegata dal processo. Questo non indica la durata . "Tempo trascorso" rappresenta la durata totale dell'attività. Se una determinata attività utilizza un parallelismo di 8 (ovvero 8 thread) e ogni thread viene utilizzato con una frequenza del 100% per l'intera durata dell'attività, il tempo della CPU potrebbe essere di 8000 ms, mentre il tempo trascorso sarebbe solo di 1000 ms.

Pertanto, il "Tempo trascorso" più breve indica un tempo di risposta più rapido.

Potresti volere un tempo CPU più breve e un tempo trascorso più lungo se sei preoccupato per la pressione della CPU e non ti interessa l'esperienza utente.

È possibile accettare un tempo CPU più lungo se ciò comporta un calo del tempo trascorso, poiché ciò potrebbe indicare che l'utente sta aspettando meno, a scapito di un maggiore utilizzo della CPU.

Probabilmente, la metrica più importante per l'ottimizzazione delle query sarebbe i tempi di attesa .


4

... mentre l'ottimizzazione delle prestazioni del tempo della CPU si riduce del ~ 38% ma il tempo trascorso aumenta del ~ 22%. Questo è un miglioramento?

Questo dipende interamente da cosa stai ottimizzando e perché. Nel senso più comune - velocità dell'output della query - questo non è un miglioramento, come ha osservato Max Vernon nella sua risposta.

Tuttavia, se il sistema è CPU-bound, allora questo sarebbe un miglioramento, come si è diminuito il carico della CPU. In effetti, se così fosse, il risultato finale potrebbe anche significare un ritorno più veloce del gruppo di risultati.

E se il tuo sistema fosse legato al disco o alla memoria, questo sarebbe un risultato neutro, dal momento che non ci sono indicazioni che abbia migliorato o degradato queste misure.

Quindi, il 95% delle volte, Max ha assolutamente ragione: questo non è un miglioramento. Nei restanti pochi casi, potrebbe essere un miglioramento.

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.