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.

4 myśli na temat “Robienie sobie szybkiego Ubuntu

  1. Koziołek, czy to jest gdzieś po angielsku? Bo myślę że warto to udostępnić międzynarodowej społeczności.

  2. To jest kompilacja wiedzy z różnych w tym angielskojęzycznych źródeł. Została ona sprawdzona na moim kompie z U9.10. Generalnie w googlu jest 🙂

  3. Eee, ale w googlu to jest właśnie w różnych źródłach, a tu tak fajnie wszystko razem zebrane. Jeśli sam nie chcesz tego zrobić, czy nie miałbyś nic przeciwko temu, żebym ja to przetłumaczył i umieścił na swoim blogu, oczywiście z podaniem źródła?

  4. To tłumacz… mój blog jest zgodny z GPL. Swoją droga chodzi mi po głowie tuning skryptu rc, ale to muszę na jakiejś maszynie wirtualnej przetestować.

Napisz odpowiedź

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax