Przetestuj swojego linuksa z Phoronix Test Suite
Pojawiły się nowe wydania dystrybucji Ubuntu (9.10) i OpenSuse (11.2), więc zabrałem się za przeinstalowanie swojego domowego laptopa. Przy tej okazji zrezygnowałem z GNOME z którego cały czas korzystałem i wybrałem XFCE jako środowisko graficzne (Xubuntu). Nie dlatego że sprzęt jest przestarzały, ale dlatego że lubię proste i szybkie rozwiązania (stąd też rozważałem Blackboxa lub nawet własną kompilację systemu z wykorzystaniem Gentoo). Drugim dylematem jaki zwykle mam był wybór pomiędzy środowiskiem 32 bitowym a 64 bitowym. Jedyne co przemawia za 64 bitowym, to lepsze wykorzystanie procesora. Poza tym raczej ma sporo niedogodności. Na przykład kompilacja programów ze źródeł nie zawsze idzie gładko, o czym ostatnio przekonałem się próbując skompilować port dla Shadow Warrior.
No i tak zastanawiając się nad różnymi opcjami nasunęła mi się myśl: a gdyby tak przetestować różne konfiguracje i wybrać tę najszybszą? No tak, tylko jak to najefektywniej zrobić? Zawsze można skorzystać z prymitywnych metod polegających na przykład na ręcznym pomiarze czasu kodowania pliku z WAV do MP3, albo spróbować oceniać szybkość organoleptycznie. Na szczęście istnieje bardziej profesjonalna metoda. Narzędziem, które pozwoli nam przeprowadzić różnego rodzaju testy w Linuksie jest Phoronix Test Suite. Ilość oferowanych testów jest wystarczająco duża, aby zapewniła zajęcie na kilka godzin. Na razie testy przeprowadziłem na Ubuntu 9.04 (64 bitowy) i Xubuntu 9.10 (32 bitowy), ale w planie mam dodatkowe testy.
Instalacja Phoronix Test Suite
Teoretycznie narzędzie dostępne jest w repozytorium, ale nie w najnowszej wersji ( w tej chwili v2.2.0). Dlatego wykorzystałem plik instalacyjny pakietu deb dostępny na stronie projektu (phoronix-test-suite_2.2.0_all.deb).
Samo zainstalowanie pakietu nie wystarcza, jeżeli chcemy skorzystać z graficznego GUI. Po zainstalowaniu zauważyłem, że ikonka programu została dodana do menu, ale po kliknięciu na niej nic się nie działo (zamiast klikając na ikonce możemy w konsoli wykonać „phoronix-test-suite gui”. Efekt był ten sam).
Aby GUI działało poprawnie konieczne jest doinstalowanie PHP5 CLI i modułu PHP GTK. Łatwiejszy sposób instalacji znalazłem dla systemu 32 bitowego. Wystarczy, że dodamy repozytorium które przygotował Kasper Johansen. W terminalu wykonujemy komendy:
sudo wget http://downloads.kaspernj.org/ubuntu/kaspernj.org.sources.list \
-O /etc/apt/sources.list.d/kaspernj.org.sources.list
sudo aptitude update
sudo aptitude install php5-gtk2
Samo dodanie repozytorium i zainstalowanie php-gtk nie załatwi jeszcze całej sprawy. Pozostanie do wykonania zmiana pliku konfiguracyjnego PHP. Zanim to zrobimy warto w konsoli wykonać komendę sprawdzającą obecność modułu:
php -m | grep php-gtk
Jeżeli w wyniku wykonania tej komendy nic nie zostanie zwrócone, to znaczy że PHP jeszcze nie jest odpowiednio skonfigurowane. W dowolnym edytorze otwieramy jako super użytkownik plik php.ini. Oto przykład dla edytora gedit:
sudo gedit /etc/php5/cli/php.ini
Znajdujemy sekcję “Dynamic Extensions” i dopisujemy tam linię:
extension=php_gtk2.so
Po zapisaniu ponownie w konsoli sprawdzamy PHP komendą podaną wcześniej. Tym razem powinno nam zwrócić w konsoli tekst “php-gtk”. Jeśli tak jest, to możemy zacząć korzystać z Phoronix Test Suite.
Nieco dłuższy proces instalacji był w przypadku systemu 64 bitowego, a powodem był fakt że wspomniane wcześniej repozytorium dostarcza paczki dla architektury i386, a więc 32 bitowej. Może się to w przyszłości zmieni, albo php-gtk będzie w innym repozytorium. Na dzień dzisiejszy nic nie udało mi się znaleźć. Dlatego musiałem samemu kompilować php-gtk. Najpierw pobrałem pakiet php-gtk-2.0.1. Teoretycznie kompilacja sprowadza się do kilku komend. Oto one:
./buildconf
./configure
make
sudo make install
Oczywiście było by zbyt prosto i pewnie bym dalej nie rozwijał tego tematu, gdyby nie pojawiły się jakieś błędy. Dlatego samodzielną kompilację zalecam osobom, które wiedzą jak sobie z błędami poradzić. Zanim zaczniemy próbę kompilacji należy się upewnić, że mamy wszystkie niezbędne biblioteki. Najlepiej zacząć od wykonania następującej komendy:
sudo apt-get install php5-dev libapr1-dev php5-cli
Po jej wykonaniu pojawiał się jeszcze jeden błąd przy wykonywaniu buildconf. Oto co komenda buildconf zwróciła w terminalu:
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
rebuilding aclocal.m4
rebuilding configure
configure.in:77: warning: LTOPTIONS_VERSION is m4_require’d but not m4_defun’d
aclocal.m4:2912: LT_INIT is expanded from…
aclocal.m4:2947: AC_PROG_LIBTOOL is expanded from…
configure.in:77: the top level
configure.in:77: warning: LTSUGAR_VERSION is m4_require’d but not m4_defun’d
configure.in:77: warning: LTVERSION_VERSION is m4_require’d but not m4_defun’d
configure.in:77: warning: LTOBSOLETE_VERSION is m4_require’d but not m4_defun’d
configure:12695: error: possibly undefined macro: m4_ifval
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure:16403: error: possibly undefined macro: _LT_SET_OPTIONS
configure:16403: error: possibly undefined macro: LT_INIT
make[1]: *** [configure] Error 1
make: *** [all] Error 2
Z pomocą przyszło WIKI na stronie wiki.birth-online.de. Wykonałem zalecane komendy:
cd /usr/share/aclocal
sudo cp libtool.m4 libtool.m4~backup
sudo chmod 777 libtool.m4
sudo cat lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 >>libtool.m4
sudo chmod 644 libtool.m4
i cały proces kompilacji zakończył się sukcesem! Ostatnim krokiem była edycja php.ini w sposób jaki wcześniej podałem dla architektury 32 bitowej.
Testowanie
Jako już dotarliście do tej części opisu, to znaczy że jeszcze was nie znudził opis komend. Więcej już nie będą potrzebne, bo praca z programem odbywa się poprzez proste GUI.
Zanim przeprowadzicie wybrany test trzeba go pobrać. Lista dostępnych testów widoczna jest w zakładce “Available Tests“. Po wybraniu testu z listy pojawi się jego opis i przycisk Install. Po zainstalowaniu pierwszego testu zauważymy, że pojawi się nowa zakładka “Installed Tests”, w której widoczne są zainstalowane przez nas lokalnie testy. W zakładce tej mamy przycisk Run , który pozwala uruchomić wybrany test. Niektóre testy wymagają pobrania sporej ilości danych z Internetu. Jest tak, ponieważ jak wykonujemy testy obróbki plików (np. konwersja na MP3), to aby test mógł być porównywany z innymi musimy dysponować tym samym materiałem do obróbki. Ilość danych jakie poszczególne testy zajmują możemy sprawdzić w katalogu ~/.phoronix-test-suite/installed-tests (.phoronix-test-suite jest w katalogu domowym). Po wykonaniu testu jego wynik będzie widoczny w ostatniej zakładce (Test Results). Alternatywnie możemy sprawdzić pliki w katalogu ~/.phoronix-test-suite/test-results.
Poniżej pokazany jest przykładowy wynik testu dla kompresji z WAV do MP3 z wykorzystaniem kodeka LAME.
Powyższy test został przeprowadzony na następującym sprzęcie:
Processor: Intel Core 2 Duo CPU T7100 @ 1.80GHz (Total Cores: 2), Motherboard: Hewlett-Packard 30C0, Chipset: Intel Mobile PM965/GM965/GL960 + ICH8M, System Memory: 3887MB, Disk: 80GB HTS721080G9SA00, Graphics: Intel Mobile GM965/GL960 IGP 256MB
i przy następującej konfiguracji
OS: Ubuntu 9.04, Kernel: 2.6.28-14-generic (x86_64), Desktop: GNOME 2.26.1, Display Server: X.Org Server 1.6.0, Display Driver: intel 2.6.3, OpenGL: 2.0 Mesa 7.4, Compiler: GCC 4.3.3, File-System: ext3, Screen Resolution: 1280×800
Na koniec jeszcze jedna uwaga dotycząca samego GUI. Niestety nie zawsze działa ono tak jak byśmy mogli oczekiwać. Dotyczy to procesu instalacji i testowania. Czasami okienko znika, a po chwili pojawia się na nowo. Czasami też podczas testowania pojawia się kilka okienek, które po zakończeniu testu trzeba zamknąć. Z zasady podczas testowania należy zostawić komputer w spokoju, aby nie angażować go w inne zadania, które mogłyby wpłynąć na wynik testu.
Miłej zabawy przy testach.


