Robienie sobie szybkiego Ubuntu
Jest kilka bardzo prostych metod, które pozwalają na bardzo dobre polepszenie jakości naszego życia i pracy z systemem Ubuntu. Niektóre z nich działają na wszystkich linuxach i warto je stosować jako obowiązkowe kroki po instalacji systemu.
Koniec dynamicznego linkowania
Każdy współczesny system operacyjny wymusza na kompilatorze tworzenie kodu wynikowego, w którym elementy związane z bibliotekami zewnętrznymi są tylko zaślepkami. Przy uruchomieniu programu następuje proces dynamicznego łączenia (linkowania) w którym zaślepki są zastępowane właściwymi odwołaniami do kodu w bibliotekach . Proces ten powoduje, że uruchomienie programu jest wydłużane o ten czas. Przykładowo OO 3.1 wstawał na moim kompie „świeżo uruchomionym” około 15 sekund przy pierwszym uruchomieniu i około 5-7 sekund za każdym kolejnym uruchomieniem w danej sesji. Dużo… jednakże wystarczy zainstalować pewien programik, który bardzo ułatwi nam życie.
Listing 1. instalacja prelink
root$> apt-get install prelink
#... komunikaty instalacji
root$> prelink -amR
Co się stało? Prelink to taka sprytna biblioteka, która na podstawie informacji z kodu źródłowego potrafi zamienić dynamiczne łączenie na statyczne referencje. Niby nic nadzwyczajnego. Robi to samo co linker tyle tylko, i tu jest pies pogrzebany, że dokonuje tej operacji na kodzie wykonywalnym. Innymi słowy modyfikuje kod programu tak by w trakcie uruchomienia nie było potrzeby dynamicznego łączenia. Wada… po każdym updacie bibliotek trzeba jeszcze raz go zapuścić. No, ale cóż… raz się żyje.
Program posiada oczywiście opcję undo
Listing 2. Prelink undo
root$> prelink -au
Którą MUSISZ uruchomić jeżeli chcesz bezpiecznie usunąć prelink. Wierz mi, nie będziesz chciał. OO 3.1 poprawił swoje czasy do 5 sekund przy pierwszym i około 3 przy każdym kolejnym uruchomieniu w danej sesji.
Co ja będę robił…
Drugim programem jest preload, który wykorzystuje metody stochastyczne do przewidywania jakie dane będą potrzebne w następnej kolejności i je zawczasu ładuje. Problemem jest, niestety, szybkie wyczerpywanie się RAM, co powoduje, że nie można odpalić JVM. Cóż… lepszą metodą jest przejście na 64-bity i włożenie z 12GB RAMu… powinno styknąć.
Na koniec instalacja i uruchomienie:
Listing 3. instalacja preload
root$> apt-get install preload
#... komunikaty instalacji
root$> /etc/init.d/preload start
Ręczne uruchomienie nie powinno się wydarzyć, ale nie zawsze automatyczne zaskoczy.
Zmiana obsługi wielu rdzeni przy starcie systemu
Tu będzie trochę inaczej. Jeżeli masz kilka rdzeni można poeksperymentować ze sposobem obsługi współbieżności przy starcie usług. W pliku /etc/init.d/rc należy odszukać linijkę CONCURRENCY=’none’ i zamienić ją na CONCURRENCY=’shell’. Spowoduje to, że usługi będą uruchamiane równolegle, a nie szeregowo. Może to doprowadzić do dość widowiskowego wyjebania się systemu łącznie z paniką jajka. Przyczyną może być zależność jakiś nietypowych usług. Odzyskiwanie… uruchomić z LiveCD lub w singlu i przywrócić pierwotną konfigurację. System wstaje rzeczywiście trochę szybciej.
Bardzo podobną metodą jest zmiana działania skryptu rc. No ale to jest dla hardkorów, którzy rozumieją jak on działa.