← Back to team overview

sslug-teknik team mailing list archive

Re: Job kontrol ved multiCPU maskine

 

On Tue, Feb 09, 1999 at 07:58:34AM +0100, Thomas M. Hansen wrote:
> Hej
> 
> Vi  fået en Dual PII som kører Linux med Kerne 2.2.1.
> F.eks. en Matlab Benchmark siger at der stort ikke er nogen forskel i
> performance om vi kører een eller to versioner af Matlab. Fint nok..
> 
> Men når nu jeg sætter et talknuser program over, og det er det eneste
> der
> kører, kan jeg se på xosview at det hopper rundt fra den ene til den
> anden
> processor ? Det kan vel ikke være specielt godt for performance.. 
> Så mit spørgsmål er om man kan tvinge et job til kun at køre på en
> bestemt CPU ?

Hvis kernen laver ``hot-potatoe'' med processen, altså flytter den meget
ofte (rigtigt mange gange i sekundet) fra den ene CPU til den anden, vil
du ganske rigtigt få dårligt udnyttelse af cachen.

Linux har en bias for at vælge samme CPU igen, når en process re-schedules.
Derfor vil processen normalt ikke skifte CPU meget tit.  Når man kigger i
xosview kan det se meget voldsomt ud at der skiftes f.eks. een gang hvert
sekund mellem CPU'er. Men lad være med at tage det så tungt.  Sammenlignet
med det overhead der skulle til for at indføre en bedre strategi for
scheduling i SMP, er den lidt simplere model, hvor man altså oplever skift
en gang imellem, hurtigst i sidste ende.

Der har været lange diskussioner om netop dette på linux-smp listen.  Der
er ændret forskelligt i scheduleren, bl.a. noget der kunne have indflydelse
på hvordan en process migrerer fra CPU til CPU.
På et tidspunkt var der snak om at ændre strategien i 2.3.x, men jeg er faktisk
ikke klar over om man er kommet frem til at det er godt nok som det er.

> 
> Også for det tilfælde at man sætter 4 job over, og gerne vil have det
> ene job
> til at få 100% adgang til den ene processor og så få resten til at dele
> den
> anden ?

Der findes patches så du kan lave processor-sets.  Men regn med, at lige så snart
du selv vil gå ind og lege ``manual scheduler'' spilder du jo CPU tid lige så snart
du overser at een process er standset og fire andre gerne ville have brugt den
ellers dedikerede CPU.

Der er folk der leger med det, men jeg tror at du får mest ud af bare at køre
med standard scheduleren.   Det virker, og det virker faktisk rigtigt godt.

Man skal passe meget på med at bruge xosview som mål for hvordan ens scheduler
fungerer. Husk på, at xosview selv skal bruge CPU-tid, og derfor måske er den
process der får din matlab til at bytte CPU.

................................................................
: jakob@xxxxxxxxxxxxxxxx  : And I see the elder races,         :
:.........................: putrid forms of man                :
:   Jakob Østergaard      : See him rise and claim the earth,  :
:        OZ9ABN           : his downfall is at hand.           :
:.........................:............{Konkhra}...............:


References