Mengapa menggunakan Hyper-threading dapat menyebabkan penurunan kinerja

10

Saya telah membacanya di berbagai tempat seperti ini , bahwa Hyper-threading menyebabkan penurunan kinerja.

Saya tidak bisa mengerti mengapa atau bagaimana hyper-threading mengarah pada degradasi.

Mengapa begitu bahkan ketika Hyper-threading memungkinkan OS untuk memanfaatkan sumber daya gratis apakah degradasi terjadi.

Meskipun tolok ukur memang mengindikasikan hiper-threading sebagai pelakunya, tetapi dapatkah seseorang menjelaskan alasannya?

Terima kasih

DW
sumber

Jawaban:

8

Tampaknya jawabannya, seperti biasa, ada hubungannya dengan cache. Karena hyper-threads menggunakan cache L1 dan L2 yang sama, satu hyper-thread dapat membuang cache yang lain. Dalam kasus terburuk, utas bergantian membuang cache yang lain dan kinerja menurun karena cache diisi kembali hanya untuk dibuang lagi.

Tentu saja, ini sepertinya sangat spesifik untuk beban kerja, yang akan menjelaskan mengapa masalah ini kebanyakan terlihat di server.

Penting juga dicatat bahwa jawabannya sebagian tergantung pada apa yang Anda maksudkan dengan "kinerja". Misalnya, dalam sistem waktu nyata, metrik kinerja Anda lebih dapat diprediksi daripada throughput, yang memberikan dampak negatif pada hyper-threading dengan memperkenalkan kios yang tidak dapat diprediksi.

superdesk
sumber