scheduler, kse, testy wydajności

Transkrypt

scheduler, kse, testy wydajności
Scheduler
●
●
ULE Scheduler (od wersji 5.2)
podobny do tego w linuxie 2.6
–
–
–
dwie kolejki (aktywne i oczekujące)
wspiera procesy interaktywne
decyzja na podstawie priorytetów
ale...
●
●
●
kolejka idle dla nieatkywnych procesów
Userland threads vs linux threads
KSE (kernel-scheulded entities)
– skalowalność
– mniejszy narzut z przełączania między
wątkami
– mechanizm upcall
linuxthreads
SMP
●
●
kolejka runqueue
dla każdego
procesora
wyrównanie
obciążenia
Wątki w działaniu
●
●
●
●
●
●
kse_create(struct kse_mailbox *mbx, int newgroup);
kse_exit(void);
kse_release(struct timespec *timeout);
kse_switchin(mcontext_t *mcp, long val, long *loc);
kse_thr_interrupt(struct kse_thr_mailbox *tmbx);
kse_wakeup(struct kse_mailbox *mbx);
Linux vs BSD
●
●
●
wyścig trwa cały czas
dużo zależy od metody testowej
wydajność BSD zależy od
dostosowaniu bibliotek systemowych
do używanych programów
2003
●
●
FreeBsd stosuje
ciekawe sztuczki
wszystkie systemy
łatwo się skalują
2003
●
●
NetBSD
wyraźnie
przegrywa
Inne systemy
skalują się
O(1)
2003
●
●
Zarządzanie
wątkami
Obrazek
przedstawia
usuwanie
procesów
2004
●
●
●
●
●
PostgreeSQL
4 mln krotek
jednostka
wykresu krotki/s
sched ule
bez SMP
FreeBSD 5.2
Generic
FreeBSD 5.2
CUSTOM
FreeBSD 4.9
DragonFly
50
trans/klienta
1000
trans/klienta
Linux 2.4 xfs
Linux 2.4 ext3
Linux 2.6 xfs
Linux 2.6 ext3
NetBSD 1.6
0
25
50
75
100
2004
Tytuł główny
FreeBSD 5.2
GENERIC
FreeBSD 5.2
CUSTOM
FreeBSD 4.9
GENERIC
DragonFly
current
●
●
20 klientów
20 stop wsp
1 klient
1 stop wsp
Linux 2.4 xfs
Linux 2.4 ext3
Linux 2.6 xfs
LInux 2.6 ext3
NetBSD 1.6
0
5
10
15
20
WebCMS
komercyjny
2006
●
●
●
84 MB/s to maksimum
wynikające z ograniczeń
sprzętu
gatling jako serwer
– jeden wątek
– wiele instancji
100 współbieżnych
połączeń
85
80
75
70
65
60
55
50
45
40
35
30
25
20
15
10
5
0
MB/s
żądań/s
MB/s
żądań/s
Linux
2.6
freeBS
D 6.1
NetBSD
3.0
Win2k3
2006
●
●
●
rozpakowanie dużego pliku
(przez http!)
rozpakowanie drugiego
pliku
usunięcie stworzonych
plików
70
65
60
55
50
45
40
tar1
tar2
rm -rf
35
30
25
20
15
10
5
0
Linux
reiser4
Linux
ext3
FreeBSD
6.1
NetBSD
3.0
Bibliografia
●
●
●
●
●
●
http://www.freebsd.org/kse/index.html
http://www.aims.net.au/chris/kse/tex/
Scheduler Activations, Anderson, et al.
http://bulk.fefe.de/scalability/
Benchmarks, Round 2, Felix von Leitner,
Linux-Kongress 2006
http://geri.cc.fer.hr/~ivoras/web2/papers/osbench.h
tml