Pojęcie czasu, wątków i kiedy nie używać Gentoo

22 wrzesień 2006, autorstwa: kozik

Po przejściu na profil x86/2006.1/server na opartym na Gentoo serwerze plików i WWW, który w pracy siedzi pod moimi łapami, przyszła pora na aktualizację GCC (3.4.6 » 4.1.1) i Glibc (2.3.6 » 2.4).

Są to praktycznie dwa najważniejsze pakiety w systemie - o nich opierają się wszystkie inne. Dodatkowo w Glibcu zawarta jest biblioteka odpowiedzialna za wątki, a właściwie biblioteki:

Migracja na Glibc 2.4 oznacza całkowite zrezygnowanie z LinuxThreads i poleganie na NPTL. Brzmi poważnie, ale sprowadza się to tylko do ustawienia odpowiedniej flagi USE i skompilowania Glibc.

Po skompilowaniu Glibc należy skompilować GCC. Po skompilowaniu GCC należy skompilować wszystko. Tak. Wszystko :). Na laptopie i domowym pececie migrowałem jakiś czas temu i jakoś poszło. Ale serwer ma działać - nie może mieć przestoju. Kompilacja ma lecieć w tle i nikomu nie przeszkadzać.

No i leciała. GCC 4.1 skompilował się w 2 godziny, a nad całym systemem procesor PIII 750 MHz męczył się ponad 10 godzin! Serwer oczywiście cały czas działał i nie było widać spowolnienia w serwowaniu plików lub stron WWW. Tak czy inaczej bite 12 godzin - pół dnia… całkiem niezły to wynik. Oczywiście tylko przez pewien czas go nadzorowałem - skończył pracować, gdy już nie dawno w robocie nie było :), więc nie miało dla mnie znaczenia, czy to 12h czy 20h czy 6h.

Nie wyobrażam sobie takiej kompilacji na np. Soekrisie. Przypominam, że jest to miniaturowy komputer (wielkość małych domowych routerów) z procesorem odpowiadającym Pentium MMX ~266 MHz i 128 MB RAM-u (w lepszej konfiguracji). Jedyna rada dla takiej małej maszynki to cross-kompilacja na innym, wydajniejszym komputerze.

Nie omieszkam porównać tego do FreeBSD. Tam idea jest troszkę inna - FreeBSD to już w swej minimalnej postaci pełnoprawny system. Oczywiście posiada ogromną ilość dodatkowego oprogramowania (system portów, na którego idei powstał Portage), ale baza to monolityczna całość (włącznie z kernelem). Kompilacja FreeBSD ma właśnie przewagę monolityczności - nie trzeba sprawdzać sum kontrolnych, rozpakowywać i instalować każdego małego pakietu jak gzip, less czy syslog. Świat kompiluje się jednym ciągłym ruchem dając w rezultacie odczuwalny zysk wydajności. Ma to i swoje wady rzecz jasna.

Wysłano w Blog - Linux i Unix |

Adres dla trackback. RSS dla komentarzy w tym wpisie.
Dodaj komentarz




Uwaga: Włączona jest moderacja komentarzy, więc nowy komentarz nie ukaże się bezpośrednio po jego wysłaniu.

Uwaga: Działa filtr antyspamowy. Jeśli umieścisz w komentarzu odnośniki, to może on zostać błędnie zakwalifikowany jako spam.