Cała prawda o kernelach eXt73: sprawdzamy, co może dać płatna optymalizacja (K)ubuntu

Strona głównaCała prawda o kernelach eXt73: sprawdzamy, co może dać płatna optymalizacja (K)ubuntu
15.12.2014 17:46
Cała prawda o kernelach eXt73: sprawdzamy, co może dać płatna optymalizacja (K)ubuntu
bEgWTdDW

Fani Linuksa niejednokrotnie twierdzą, że system ten pozwala nawyciśnięcie z maszyny znacznie więcej, niż jest to możliwe z Windows.Czy jednak faktycznie popularne desktopowe dystrybucje, takie jakUbuntu, wyciskają więcej? Wspominamy o systemie Canonicalacelowo, gdyż jest on nie tylko najpopularniejszym spośróddesktopowych Linuksów, ale też jak pokazuje wiele testów, jednym znajlepiej zoptymalizowanych pod kątem pracy i zabawy na PC. TomaszMiś, znany na naszych łamach jako ext73, jest jednak przekonany, żemożna znacznie lepiej. Optymalizowane przez niego jądra i sterownikigraficzne mają przynieść znaczny wzrost wydajności całego systemu, aspecjalny instalator NeteXt'73 pozwolić niewtajemniczonym w konsolęużytkownikom na łatwe ich zainstalowanie. Czemu zatem wszyscy niekorzystamy z jąder od exta 73? Cóż, nie są one za darmo, a śmiałetwierdzenia autora przysporzyły mu jawnych wrogów, twierdzących, żeto musi być jakiś przekręt. W tej sytuacji zdecydowaliśmy się samibliżej zbadać sytuację.

bEgWTdDp

Jądra eXt73: o co chodzi?

Tomasz Miś do budowy swoich kerneli wykorzystuje czyste źródła(„vanilla”) od Linusa Torvaldsa, wprowadzając do nichoptymalizacje związane m.in. z pracą planistów (schedulerów) izarządzaniem procesami. Kompilacje przygotowywane są na 64-bitowearchitektury Intela i AMD – i rozpowszechniane jako binarnepaczki dla ubuntupodobnych systemów. Roczna subskrypcja, dającadostęp do wydawanych w tym czasie kerneli, kosztuje 50 zł. Wbrewtemu, co niektórzy twierdzą, działanie takie nie jest niezgodne zlicencją GNU GPL v2, na jakiej rozpowszechniany jest kod jądraLinuksa. Autor dostarcza za darmo kod źródłowy, a opłatę pobiera zadzieło budowy kodu wynikowego. Założenia licencji nie zmuszają go doujawniania tego, co konkretnie robi z kompilatorem, jakich ustawień iflag używa podczas kompilacji.

350129138855864257

Binarnym kernelom towarzyszą optymalizacje na poziomie systemu,związane głównie z systemem zarządzania energią, modyfikacje ustawieńBIOS-u komputera i zmiany w programie rozruchowym GRUB. By udostępnićswoją pracę jak najszerszemu gronu użytkowników, autor przygotowałprosty w obsłudze instalator, który pozwala wyklikać cały procesinstalacji zoptymalizowanych jąder i towarzyszących im sterownikówgrafiki, a także zarządzać uruchomionymi usługami, skryptami iustawieniami. Za darmo możemy za jego pomocą pobrać kernele dlaAtomów Intela i procesorów zgodnych z architekturą K8 AMD, odpłatniezaś mamy kernele dla architektur AMD takich jak Athlon II, Phenom II,Brazos, Bulldozer, Piledriver i Steamroller, oraz architektur IntelaSandy Bridge, Ivy Bridge i Haswell. Nad instalatorem nie będziemy sięspecjalnie rozwodzić – to nie jest szczyt sztuki projektowaniainterfejsów użytkownika, ale działa solidnie i robi co powinien.

bEgWTdDr

Konfiguracja platformy testowej

Zdecydowaliśmy się przeprowadzić testy na jednej z najsłabszychpod względem mocy obliczeniowej kofiguracji sprzętowych, jakie możnadziś złożyć z nowych części – a która zarazem jest najlepszapod względem stosunku możliwości do ceny i świetnie się sprawdza wbudowie komputerków „salonowych”, HTPC. Oto konfiguracja:

Procesor: APU Athlon 5350 Płyta główna: ASRock AM1H-ITX RAM:1x Hyper-X 4 GB (single channel), 1600 MHz (to maksymalne parametrydla czipsetu AM1) Dysk: A-DATA SSD 120 GB, SATA-III.

Na tej maszynce zainstalowaliśmy jako system operacyjny Kubuntu14.04 LTS, z domyślnym systemem plików ext4. Czemu Kubuntu, a nieUbuntu? Cóż, najwyraźniej lubimy KDE. Innych podtekstów tu nie ma.Następnie zainstalowaliśmy nowy kernel 3.17 (generic), z oficjalnegorepozytorium kernel-ppa oraz oficjalne sterowniki AMD fglrx z poziomupanelu sterowania systemu (kanał fglrx-updates). Domyślnym kernelem wtej wersji dystrybucji jest 3.13, ale chcieliśmy mieć teżbezpośrednie porównanie z jądrem 3.17 (brazos) instalowanym przezNeteXta.

Taki system, można powiedzieć dość generyczny, posłużył jakopodstawa do oceny możliwości kerneli ext73. Po przeprowadzeniukompletu testów, zainstalowany został kernel Brazos, wraz zrekomendowanymi ustawieniami, a testy powtórzone – zarówno zestarszą wersją sterowników graficznych AMD, jak i najnowszą, 14.12,która niedawno zadebiutowała na Linuksie.

bEgWTdDx

Narzędzia testowe

Aby oszczędzić sobie pracy i ułatwić porównania, sięgnęliśmy popakiet phoronix-test-suite (5.4.0), wybierając z niego najbardziejadekwatne do zastosowań desktopowych benchmarki. W systemowejprzeglądarce – Firefoksie – przeprowadziliśmy też testywydajności aplikacji webowych za pomocą nowych benchmarków Apple'a.Przetestowaliśmy też kilka gier i odtworzyliśmy wideo 1080p i 4K.

Sprawy mniej ciekawe, lecz fundamentalne

Zaczęliśmy od testów mniej spektakularnych – pamięci, sieci,dysku, systemu plików i wydajności systemu.

RAMspeed toznane narzędzie mierzące wydajność RAM i cache dla uniksopodobnychsystemów. Nie spodziewaliśmy się aż takiej różnicy. System z kernelemext73 okazał się w niektórych operacjach niemal dwukrotnie szybszy,niż ten działający pod domyślnym kernelem od Canonicala. Dlauśrednionego testu na liczbach stałoprzecinkowych uzyskał niemal 4325MB/s, podczas gdy „stockowe” jądro dało zaledwie 2405MB/s.

350129138856454081

W bezpośrednim dostępie do dysku różnic już takich nie było.Benchmark FlexibleIO Tester (fio) symuluje różne obciążenia robocze dla pamięcimasowych. W operacji losowego odczytu (bloki 4 KB) kernel ext73uzyskał nieco ponad 16 MB/s, podczas gdy stockowy kernel 13,5 MB/s.Przy losowym zapisie oba kernele szły łeb w łeb – ok. 88 MB/sdo 87 MB/s.

350129138856585153
350129138856650689

Wydajność systemu plików zmierzyliśmy za pomocą FS-Marka,przeznaczonego do symulowania obciążeń typowych dla synchronicznegozapisu. Można tu modyfikować liczbę plików, głębię katalogów itp.Wybraliśmy 1000 plików o wielkości 1 MB każdy. Ponownie kernel ext73pokazał pazury, osiągając wynik na poziomie 220 plików/s podczas gdystockowy kernel uzyskał tylko 160 plików/s. Jeszcze bardziej przewagaext73 była widoczna w PostMarku,symulatorze obciążeń roboczych charakterystycznych dla serwerapoczty, w którym pliki są zakładane, kasowane i odczytywane. Tuosiągnął wynik 1546 transakcji na sekundę, podczas gdy na stockowymkernelu tylko 760 transakcji na sekundę.

350129138856781761
350129138856847297

W typowym i wymagającym obciążeniu roboczym, jakim jestrozpakowanie jądra Linuksa, kernel ext73 okazał się minimalnieszybszy, kończąc pracę w niecałe 24 sekundy, podczas gdy stockowypotrzebował na to ponad 25 sekund.

350129138856978369

Żadnego za to efektu optymalizacje nie przyniosły w kwestiiwydajności sieci. Transfer pliku 10 GB przez wewnętrzny interfejsloopback zajął w obu wypadkach niecałe 30 sekund.

350129138857109441

O jądrze, co poważnej pracy się nie bało

Użytkowników niekoniecznie musi interesować wydajność systemuplików czy pamięci – najważniejsza jest wydajność uruchamianychaplikacji. Generalnie można powiedzieć, że cudów nie ma –optymalizacja kernela nie zrobi z naszego Athlona 5350 czegoś nakształt Core i3. Postęp jednak jest, choć jego wielkość bardzo zależyod rodzaju aplikacji.

bEgWTdDy

Na pewno jądra ext73 nie przyspieszą znacząco pracy programisty.Testowe kompilacje Linuksa, Firefoksa czy Apache pokazały minimalnypostęp. Przykładowo kompilacja Linuksa 3.18 zajęła niecałe 494sekundy, podczas gdy na stockowym kernelu trwało to niespełna 499sekund. Różnic nie widać też dla ray-tracerów (C-Ray), gdzie kernelext73 był o sekundę szybszy od stockowego, czy transkodowanie mediów(LAME WAV do MP3), gdzie dla obu jąder wyniki były takie same,niespełna 36 sekund.

350129138857306049
350129138857371585
350129138857437121

Swoje możliwości jądra ext73 pokazują szczególnie przyobciążeniach typowych dla serwerów WWW. Zarówno w teście Apache jak iNGINX, różnice są bardzo duże – na zoptymalizowanym jądrzeNGINX serwował niemal 8660 statycznych stron na sekundę, podczas gdyna stockowym kernelu już tylko 4664.

350129138857568193
350129138857633729

Aplikacjom przeglądarkowym niewiele można pomóc, dla nich tobrowser jest wąskim gardłem, nie system. Nie dziwią więc wyniki wJetStreamie (55756 do 55305) i Speedometrze (9,1 do 8,64) –różnice znikome, choć na korzyść ext73.

bEgWTdDz

Czas na szybszą roz(g)rywkę

Czy można grać na takim maleńkim Athlonie 5350, z jego słabymzintegrowanym Radeonem R3? Finalnie przyjrzeliśmy się kwestiiwydajności grafiki, zarówno w testach syntetycznych jak i kilkuprostych grach 3D.

Wyniki są dość ciekawe. W syntetycznych benchmarkach GPU zasługęwzrostu wydajności można przypisać przede wszystkim nowym sterownikomod AMD. Widać to zarówno w Furmarku jak i Tessmarku - przy stockowymsterowniku 13.35 zmiana jądra nie przyniosła różnic, za tozastosowanie sterownika 14.12 pozwoliło uzyskać te kilka punktówwięcej.

350129138857895873
350129138857961409

Z drugiej jednak strony test QGears, dość dobrze demonstrującywydajność podsystemu OpenGL, pokazuje, że to właśnie nowe jądropozwala zwiększyć wydajność – i to ponad dwukrotnie!Analogiczną zależność widać w benchmarkach dla grafiki 2D w Javie iX11:

350129138858092481
350129138858158017
350129138858223553

To samo można powiedzieć o wynikach w sprawdzonych przez nas grach OpenArena, SuperTuxCart i Xonotic– te kilkanaście procent więcej, jakie można uzyskać dziękikernelom ext73 oznaczać może różnicę między klatkowaniem a płynnągrą. Warto jednak sprawdzić współpracę kernela z daną wersjąsterowników – nie zawsze najnowsze będzie zarazem najszybsze.

350129138858354625
350129138858420161
350129138858485697

Finalnie wspomnijmy o wideo. Odczuwalne różnice widać jednak przyodtwarzaniu wideo H.264, gdzie odtwarzanie klipu 1080p H.264(klasyczny gruby królik z Blendera) z jądrem ext73 przyniosłoobciążenie procesora średnio na poziomie 12%, podczas gdy na jądrzestockowym wynosiło ono średnio 35%. Jeszcze lepiej było przyodtwarzaniu klipu 4k (testowa sekwencja Mobile od ElementalTechnologies). Z ext73 udało się go płynnie odtworzyć (w VLC) przyobciążeniu procesora na poziomie 77%, na stockowym kernelu okazałosię to niemożliwe – wideo klatkowało, cały system zamierał.

350129138858616769

Płacić za jądra?

Nie mamy wątpliwości co do tego, że Kubuntu z jądrem ext73odczuwalnie przyspieszyło. Czy to przyspieszenie jest warte 50złotych? Wszystko zależy od potrzeb i zastosowań. W wypadkutestowanego komputerka z Athlonem 5350 nowe jądro pozwoliło naprzyspieszenie gier i zwiększenie płynności wideo do poziomuwcześniej nieosiągalnego. Można myśleć o wykorzystaniu go doodtwarzania filmów 4K. Wiele wskazuje na to, że zoptymalizowane jądramogą przysłużyć się użytkownikom laptopów, wydłużając czas pracy nabaterii. Sprawdzimy to (i nie tylko to) podczas testów Thinkpada W510z procesorem Core i5 oraz GPU Nvidii.

bEgWTdDA

Nasz werdykt jest pozytywny dla jąder ext73. Bez względu na to,jakie to zaklęcia Tomasz Miś wznosił nad kompilatorem, zbudowaneprzez niego kernele są pod wieloma względami wydajniejsze niż kernelestockowe, dostarczane z Ubuntu – a co za tym idzie,wydajniejsze niż większość innych dystrybucji. Nie tylko przynoszą wzrost wydajności dla wielu typów obciążeń roboczych, ale też odczuwalnie poprawiają responsywność interfejsu użytkownika, sprawiając, że nawet na relatywnie słabym sprzęcie nabiera on płynności działania.

To jeszcze nie koniec

W drugiej części tegomateriału (w której przetestujemy ext73 na Intelu), postaramy sięwypróbować rosyjskie jądra nrji nrjQL, przygotowane dla ROSA Linuksa i OpenMandrivy. Uzyskanewyniki powinny pozwolić lepiej zrozumieć to, co dzieje się wzoptymalizowanym Ubuntu.

Programy

Aktualizacje
Aktualizacje
Nowości
Udostępnij:
bEgWTdEn