Multithread-Performanceeinbuße nach Upgrade auf Suse 11.4

Hinweis: In dem Thema Multithread-Performanceeinbuße nach Upgrade auf Suse 11.4 gibt es 2 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo,


    ich hoffe, das Thema ist in diesem Unterforum richtig, habe kein wirklich passendes gefunden, was sich mit Performance beschäftigt.


    Ich habe wegen vermeintlich besserer Hardwareunterstützung von Suse 11.3 auf 11.4 upgegradet. Nun geht meine Rechenleistung (8 virtuelle Kerne via Hyperthreading) stark runter, wenn ich alle 8 Kerne benutze.


    Im Detail:
    Ich nutze 7 von 8 Kernen für einen Prozess. Wenn ich einen weiteren Prozess für Kern 8 starte, ging die Performance des ersten 7-Kern Prozesses um 1-3% zurück unter Suse 11.3. Also perfekt.


    Unter Suse 11.4 läuft der 7-Kern Prozess allein auch genauso schnell. ABER: Wenn nun der 8. Kern durch den zweiten Prozess benutzt wird, dann bremst es den 7-Kern Prozess um ca. 40% aus!


    Es scheint, als würde das neue Suse (oder der neue Kernel?) ständig die Kerne innerhalb des 7-Kern-Multithread-Prozesses wechseln zu wollen und dadurch jedesmal Zeit durch irgendwelche Auslastungsabfragen einzubüßen.


    Kennt jemand das Problem oder hat jemand einen Tipp, was ich probieren könnte?


    Mit einer niedrigen Priorität des zweiten Prozesses (nice -n 19 <process2>) habe ich es schon versucht, ohne Änderung.


    Danke euch!
    J.

    Für den Inhalt des Beitrages 32009 haftet ausdrücklich der jeweilige Autor: jz9876

  • Ergänzung:


    Es scheint an der Prozesspriorität zu liegen, da der zweite Prozess nun wesentlich schneller abläuft (der erste soll aber Priorität haben). Die Gesamtleistung scheint demnach gleich zu bleiben.


    Ich habe also versucht dem zweiten Prozess beim Start mit

    Code
    nice -n 19 <process2>


    eine niedrige Priorität zuzuweisen, allerdings hat das überhaupt nichts geändert, obwohl mittel "top" ein NI von 19 korrekt angezeigt wird. Mach ich was falsch?


    J.

    Einmal editiert, zuletzt von jz9876 ()

    Für den Inhalt des Beitrages 32076 haftet ausdrücklich der jeweilige Autor: jz9876

  • Hab die Lösung gefunden.
    Es lag am neuen Kernel (2.6.37), ab diesem werden Threads gruppiert, so dass zwei Prozesse gleichrangig behandelt werden, egal wie viele Kerne jeder von ihnen nutzt. Das ist nett, wenn man noch surfen will unter voller Systemlast, aber Mist für performance-relevante Rechenanwendungen. Hier der Link:
    http://www.phoronix.com/scan.p…em=linux_2637_video&num=2


    Man kann zwischen diesem neuen Feature hin- und herschalten, einfach in der
    /proc/sys/kernel/sched_autogroup_enabled
    eine 1 (an) oder 0 (aus) einstellen.


    J.

    Für den Inhalt des Beitrages 32091 haftet ausdrücklich der jeweilige Autor: jz9876