De ce utilizarea CPU nu este distribuită uniform pe toate nucleele din Linux?

Configurare noua (How To)

Situatie

Un sistem are un singur nucleu, dacă există un singur proces care consumă tot timpul CPU, atunci când CPU va arăta o utilizare de 100%. Dar în cazul sistemelor cu mai multe, nu este necesar ca toate CPU-urile să fie folosite pentru a rula tuturor proceselor. În astfel de cazuri, utilizarea neuniformă a CPU-urilor disponibile este un comportament de așteptare.

Motivul din spatele utilizării inegale a procesului este că nu este întotdeauna un lucru util să schimbe procesul. Există mai multe lucruri care trebuie efectuate pe lângă schimbarea contextului. Prin urmare, creșterea comutării de context va crește și mai mult latența. Este util să faceți schimbarea contextului numai dacă un singur CPU nu este capabil să facă față numărului de proces care așteaptă CPU în rulare.

Intenția finală a explicației de mai sus este că, dacă există o utilizare de 100% CPU pe un singur CPU și 20-30% pe CPU-ul rămas, atunci nu este întotdeauna o problemă, cu condiția ca procesul să nu aibă afinitatea CPU setată. . pentru un anumit CPU. În general, sistemul de operare nu implică nicio afinitate CPU în sine. Fie o aplicație, fie un utilizator trebuie să spună nucleului să fixeze un proces la un anumit CPU sau la un set de CPU-uri.

Dacă un proces se confruntă cu o scădere a performanței din cauza utilizării ridicate a procesului, atunci numai acesta ar trebui abordat.

Solutie

Tip solutie

Permanent
Etichetare:

Voteaza

(12 din 27 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?