Preload – przyśpieszanie aplikacji
Napisał: Patryk Krawaczyński
06/04/2008 w Administracja Brak komentarzy. (artykuł nr 46, ilość słów: 483)
P
reload jest „adaptacyjnym demonem, który wczytuje programy z wyprzedzeniem”. Choć jego idea powstała kilka lat temu – działaniem porównywalny jest on z programem SuperFetch z systemu Vista. Poprzez działanie w tle obserwuje, które programy w systemie są najczęściej uruchamiane wprowadzając je do swojej pamięci cache. Po nauczeniu się programów umożliwia wczytanie ich do pamięci z wyprzedzeniem, co umożliwia szybsze ich uruchomienie. W ten sposób preload umożliwia wykorzystanie nieużywanej pamięci RAM oraz poprawę wydajności naszego systemu.
W zależności od rodzaju aplikacji oraz wydajności naszej maszyny możemy uzyskać od 23 do 55% przyśpieszenia dla uruchomienia jednego programu. Instalacja programu w systemie Slackware jest bardzo prosta choć poprzedzona jest kilkoma zabiegami kosmetycznymi – na początku zmuszeni jesteśmy zainstalować moduł Perl Locale::gettext, który umożliwi nam instalację prostego programu generującego strony manualne ze strumienia wyjściowego programów – help2man. Z kolei help2man umożliwi nam bezproblemową instalację preload oraz wygenerowanie do niego odpowiedniej dokumentacji:
tar -xzvf gettext-1.05.tar.gz cd gettext-1.05/ perl Makefile.PL make make install
tar -xzvf help2man-1.36.4.tar.gz cd help2man-1.36.4/ ./configure --prefix=/usr make make install
tar -xzvf preload-0.4.tar.gz cd preload-0.4/ ./configure --sysconfdir=/etc –localstatedir=/var --sbindir=/sbin \ --bindir=/bin --libdir=/usr/lib make make install mkdir -p /var/lock/subsys/ touch /var/lock/subsys/preload
Preload wspiera system init w stylu System V, dlatego jego zarządza zostanie skopiowany do katalogu /etc/init.d/. Proces zbierania informacji o systemie przez preload należy rozpocząć od jego pierwszego uruchomienia. Przed tym faktem, należy przyjrzeć się plikowi konfiguracyjnemu /etc/preload.conf. Głównie należy zwrócić uwagę na zmienne mapprefix oraz exeprefix, które definiują ścieżki dostępowe bibliotek oraz plików wykonalnych mają zostać uwzględnione, ale także pominięte w procesie zbierania informacji przez preload. Należy wspomnieć, że narzędzie to głównie adresowane jest dla użytkowników posiadających stały zestaw już sprawdzonych programów, ponieważ z każdą zmianą poczynioną w systemie proces nauki będzie się powtarzał. Pierwsze uruchomienie wykonujemy poprzez:
/etc/rc.d/init.d/preload start
W zależności od zmiennej cycle program zacznie, co określony czas wykonywać cykl zbierania informacji. W tym czasie należy uruchomić wszystkie nasze programy, których uruchomienie chcemy przyśpieszyć, a z których korzystamy najczęściej. Postępy programu możemy śledzić poprzez monitorowanie pliku logu programu:
tail -f /var/log/preload.log
Możemy także uruchomić program z flagą -V, by uzyskać podobny efekt. W ten sposób dowiemy się jak wiele pamięci zarezerwował sobie preload, oraz ile aktualnie plików i bibliotek obserwuje. Jeśli chcemy zdobyć bardziej szczegółowe informacje na temat konkretnych plików jakie są ładowane do pamięci cache programu, możemy spojrzeć na plik:
less /var/lib/preload/preload.state
Efekty pracy programu będziemy mogli odczuć przy ponownym uruchomieniu systemu, razem z załadowanym demonem preload. Oczywiście nie należy spodziewać się drastycznych zmian w osiągach wydajności. Wszystko zależy w jaki sposób skonfigurujemy program oraz jego podejście do naszej pamięci komputera. Aktualnie maszyny posiadają 1 GB RAM w standardzie, także nieużywane zasoby RAM mogą zostać spokojnie spożytkowane na poprawę wydajności systemu. Należy zadbać o startowanie programu wraz z systemem oraz jego zatrzymanie wraz z zamykaniem. W tym celu wystarczy dodać odpowiednie wpisy do plików rc.local oraz rc.6. Nie należy zapomnieć też o cyklicznym archiwizowaniu lub czyszczeniu pliku z logami.