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.

Utente Linux/Unix da più di 20 anni, cerco sempre di condividere il mio know-how; occasionalmente, litigo con lo sviluppatore di Postfix e risolvo piccoli bug in GNOME. Adoro tutto ciò che può essere automatizzato e reso dinamico, l’HA e l’universo container. Autore dal 2011, provo a condividere quei piccoli tips&tricks che migliorano il lavoro e la giornata.

Una risposta a “Stiamo tutti misurando male le performance delle CPU!”

  1. Avatar Kim Allamandola
    Kim Allamandola

    Traduzione: siccome la legge di Moore non è più vera dobbiamo dedicarci ad altro per dire che evolviamo. Giacché su x86 l’IO è sempre stato meno curato del mondo RISC bé iniziamo ad occuparci di questo.

    Tra un decennio si dirà ufficialmente che forse forse RISC era meglio

    Tra un ventennio si dirà che forse forse le vecchie LispM eran meglio…

    Quale evoluzione, come disse non mi ricordo chi, tanto avanzata da porsi ciclicamente alle spalle della *retro*guardia…

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *