ULE-Scheduler

  • Ersteller Ersteller juedan
  • Erstellt am Erstellt am
J

juedan

Guest
Hallo Forum,

gerade habe ich im Heise-Forum gelesen, dass PC-BSD fertig sei.
Die verwendete FreeBSD-Version benutzt den "ULE-Scheduler". Ist der nun soweit, dass er auch produktiv (= auf richtigen Servern) eingesetzt werden kann, oder sollte man auf Produktivmaschinen die Finger davon lassen?
Wie sieht das Verhalten von ULE unter Last aus? Wie gut skaliert FreeBSD mit ULE auf SMP-Maschinen wirklich?

Vielen Dank schon mal für die Antworten

Jürgen
 
Ich hatte vor gut einer Woche sched_ule einmal zu Testen auf meiner Opteronbox (2x Opteron 265 Dual Core, FreeBSD 6.1 RELEASE) in den Kernel gebaut und war sehr enttäuscht. Solange der Load kleiner als die Anzahl der CPUs mal zwei (bei mir also 8) bleibt, performt das System minimal besser als mit dem sched_4bsd.
Ein "make -j8 buildworld" benötigte gut 45 Sekunden weniger (Mittel aus 3 Durchläufen). In dem Augenblick, wo der Load allerdings höher wurde, also über 8 ging, war Ende. Die Performance brach extrem ein, die Prozesse blockierten sich gegenseitig. Sogar die Maus ruckelte auf der Konsole und X war unbenutzbar. das Buildworld mit -j16 habe ich nach 2h unterbrochen, da ich keine Lust mehr hatte nun noch ein Ergebnis abzuwarten.
Ich weiß nicht, woran dies Verhalten lag, habe aber im IRC ähnliche Erfahrungen von anderen Leuten bestätigt bekommen. Ich werde mir in der nächsten Woche den sched_core aus -CURRENT man näher anschauene, wie dich der verhält.
 
Hallo Yamagi,

danke für die Antwort.
Das liest sich aber gar nicht gut.
Also sollte immer noch der BSD-Scheduler benutzt werden.
Gibt es Aussicht auf Besserung?

OT: Dann sollte man den ULE aber auch aus PCBSD herausnehmen. Ein Anfänger fällt sonst auf die Waffel.

Viele Grüße

Jürgen
 
@Yamagi
Willst Du sched_core wirklich mal versuchen?
Code:
Add scheduler CORE, the work I have done half a year ago, recent,
I picked it up again. The scheduler is forked from ULE, but the
algorithm to detect an interactive process is almost completely
different with ULE, it comes from Linux paper "Understanding the
Linux 2.6.8.1 CPU Scheduler", although I still use same word
"score" as a priority boost in ULE scheduler.

Briefly, the scheduler has following characteristic:
1. Timesharing process's nice value is seriously respected,
   timeslice and interaction detecting algorithm are based
   on nice value.
2. per-cpu scheduling queue and load balancing.
3. O(1) scheduling.
4. Some cpu affinity code in wakeup path.
5. Support POSIX SCHED_FIFO and SCHED_RR.
Unlike scheduler 4BSD and ULE which using fuzzy RQ_PPQ, the scheduler
uses 256 priority queues. Unlike ULE which using pull and push, the
scheduelr uses pull method, the main reason is to let relative idle
cpu do the work, but current the whole scheduler is protected by the
big sched_lock, so the benefit is not visible, it really can be worse
than nothing because all other cpu are locked out when we are doing
balancing work, which the 4BSD scheduelr does not have this problem.
The scheduler does not support hyperthreading very well, in fact,
the scheduler does not make the difference between physical CPU and
logical CPU, this should be improved in feature. The scheduler has
priority inversion problem on MP machine, it is not good for
realtime scheduling, it can cause realtime process starving.
As a result, it seems the MySQL super-smack runs better on my
Pentium-D machine when using libthr, despite on UP or SMP kernel.
 
juedan schrieb:
OT: Dann sollte man den ULE aber auch aus PCBSD herausnehmen. Ein Anfänger fällt sonst auf die Waffel.


Der Anfänger merkt nichtmal den Unterschied, der hat auch keine SMP-Kiste. Der fortgeschrittene user nimmt für Server etc. sowieso gleich FreeBSD. Aber die Fuchsschwanz-Fraktion findet es geil und vermerkt sogleich, daß die "gefühlte Geschwindigkeit" sich enorm verbessert hat. Er weiß zur nicht warum und kann es auch nicht erklären, aber der Zweck ist erfüllt.

Aber das hat was Gutes: ULE welches nicht zum default wurde bei FreeBSD 6.1 aus guten Gründen hat auf einmal eine riesige Testerschar. Hoffen wir mal die entsprechenden Probelemberichte erreichen in irgendeiner verwertbaren Form die Herren Jeff Roberston, David Xu und Co. Aber aus irgendeinem dunklen Grunde habe ich da grad extreme Zweifel dran..
 
Hi Daniel,

Der Anfänger merkt nichtmal den Unterschied
auf einmal eine riesige Testerschar
Wenn es keiner merkt, wo soll die dann herkommen:D
Das war jetzt leicht OT.

Leider haben wir nicht die Zeit, den ULE auf unseren Testmaschinen ausgiebig zu untersuchen. Da wären zwei Schmankerl dabei: 4-way Opteron und 4-way Intel Xeon 64Bit.

Viele Grüße

Jürgen
 
Zurück
Oben