Perché l'utilizzo dell'hyper-threading può causare il peggioramento delle prestazioni


10

L'ho letto in vari posti come questo , che l'hyper-threading porta al degrado delle prestazioni.

Non riesco a capire perché o come l'hyper-threading porta al degrado.

Perché è così che anche quando Hyper-threading consente al sistema operativo di utilizzare risorse gratuite si verifica il degrado.

Anche se i benchmark indicano l'hyper-threading come colpevole, ma qualcuno può spiegarmi il motivo.

Grazie

Risposte:


8

Sembrerebbe che la risposta, come al solito, abbia qualcosa a che fare con le cache. Poiché gli hyper-thread utilizzano le stesse cache L1 e L2, un hyper-thread può eliminare le cache di un altro. Nel peggiore dei casi, i thread si alternano nel cestinare la cache dell'altro e le prestazioni diminuiscono man mano che le cache vengono riempite nuovamente solo per essere nuovamente eliminate.

Naturalmente, questo è probabilmente molto specifico per il carico di lavoro, il che spiegherebbe perché il problema si riscontra principalmente nei server.

Vale anche la pena notare che la risposta dipende in parte da cosa intendi per "performance". Ad esempio, nei sistemi in tempo reale la metrica delle prestazioni è la prevedibilità anziché la velocità effettiva, che l'hyper-threading influisce negativamente introducendo bancarelle imprevedibili.

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.