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