Stiamo tutti misurando male le performance delle CPU!

E’ sicuramente una frase forte quella del titolo, ma è esattamente quello che si intende.

Tutti quanti facciamo sempre riferimento al termine “Utilizzo della CPU”, una percentuale che, ovvio a dirsi, dovrebbe indicare quanto stiamo usando (o quanto un processo usa) dell’intera capacità del nostro processore.

In un talk durante il Southern California Linux Expo (SCALE) definito da lui stesso un “servizio pubblico di 5 minuti” Brendan Gregg, senior performance architect di Netflix (ancora loro), spiega esattamente il motivo per cui questa indicazione in percentuale è legata al passato e, di base, indica valori errati.

Riprendendo l’esempio che viene fatto nel talk, poniamo il caso di avere un processo che sta utilizzando il 90% della CPU. In realtà, il processo di per se non sta realmente utilizzando tutto quel processore, bensi -in media- il 20% è realmente la quantità di CPU necessaria al processo, mentre il rimanente 70% (seppur utilizzato da quel processo, nel senso in cui la CPU si sta riservando al processo stesso) non vengono eseguite istruzioni, bensì si è in attesa di risorse -memoria, etc.- richieste dalle reali istruzioni del processo.

Si, l’esempio è particolarmente intricato da esprimere, ed è il motivo per cui rimandiamo al video del talk a fine articolo, in cui non solo Brendan spiega un pochino più nel dettaglio il motivo dell’affermazione, ma mostra anche alcuni tool sviluppati da lui (ed open source) che utilizzano in Netflix per questo tipo di analisi.

Rimane interessante vedere come Netflix (ed in generale queste grosse aziende di servizi) spesso arrivano a carichi talmente elevati ed a livelli tale di ottimizzazione ed analisi delle performance da dover scendere a livelli bassissimi per identificare le differenze. Brendan stesso mostra come partendo da due sistemi speculari che performano in maniera differente si è arrivati ad analizzare le singole chiamate di sistema e, visto che anche li non erano presenti differenze sostanziali, sono arrivati a guardare i tempi di spostamento dei registri dei processori per capire dove stava il problema.

Beh, non vogliamo fare spoiler, ma vi consigliamo di guardare questi 5 minuti di talk, è ben fatto e magari anche voi, una volta capito il problema, sospirerete e sorriderete come ho fatto anche io.

Buona visione.

Tags: ,