Fórum Root.cz

Hlavní témata => Server => Téma založeno: poiu 12. 12. 2012, 01:19:53

Název: Kompilácia sa oplatí
Přispěvatel: poiu 12. 12. 2012, 01:19:53
Nazdar,
toto nie je prosba o radu - skor ide o 1 zistenu vec. Zistil som, ze sa kompilacia jadra naozaj oplati, aj ked mna mnohi presviedcali o opaku.

Viz obrazok, kde je vytazenie CPU so skompilovanym kernelom a potom s distribucnym Ubuntu jadrom (chcel som po dlhsej dobe skusit rozdiel).
(http://img703.imageshack.us/img703/59/cpuweek.png)

Prakticky som v kompilovanom jadre len vyhadzal nepotrebne drivere a nastavil veci najblizsie mojmu pouzitiu tak, aby kernelu nic nechybalo. Islo o rovnaku hlavnu verziu a architekturu (Linux 2.6.32 na x86-64), nevylucujem rozdiely v maintenance update-och / Ubuntu specific patchoch (sam som kompiloval vanilkove jadro).

Na to by mal byt nejaky slogan: "Chcete zvysit rychlost systemu o 50%? Skompilujte si jadro a mate to hned, bez starosti!".
Název: Re:Kompilacia sa oplati!
Přispěvatel: Trident 12. 12. 2012, 01:57:16
Jses si jistej? Krom toho ze jsem si z obrazku musel domyslet rozdil pred a po ( za takhle nejasne udelany srovnani se na vs skrtaj protokoly ), tak hraje roli mraky promennych.
1. Pouzity compiler
2. Pouzita verze compileru,moduly,knihovny
3. Patche v compileru
4. Drivery - jak vis co je presne v tvem pocitaci? Ja to vedel kdysi kdyz pccka nebyly tak slozity. Pet driveru stacilo k zivotu.
Dneska fakt nevim jaky svab mi obstarava senzory pres i2c a co za acpi driver je kde vim jen odhadem. Ruzny power management drivery muzou delat sakra rozdil. Tim spis ze tech pocitacu ma kolem sebe clovek mraky. O driverech pro embedded platformy ani nemluvim. Tam jsou treba ruzny virtualni zarizeni pro flashe,bootloadery etc. Ty to vis z hlavy? To ses teda krute dobrej.
5. Co je za moduly loadovano a co ne?
6. To neni tak jednoduchy kluku usata! Jak vis ze je system rychlejsi o xx%? Nemas ted nahodou jinej scheduler co? Jsou cisla co ti rika system a pak je skutecny stav. Co jsi jel za benchmarky?

Edit admin: Necitujte celé příspěvky nad sebou. Zbytečně se duplikuje obsah, znepřehledňuje se diskuse a zhoršuje se její čtení.
Název: Re:Kompilacia sa oplati!
Přispěvatel: and 12. 12. 2012, 09:51:34
(http://img703.imageshack.us/img703/59/cpuweek.png)
Jestli zacatek grafu do poloviny charakterizuje situaci s puvodnim jadrem a zbytek grafu situaci po novu, tak mi pripada, ze jsi dosahnul presne opacne situace, user procesy zerou mnohem vice casu, nez predtim a server jsi zpomalil....
Název: Re:Kompilacia sa oplati!
Přispěvatel: Mirek Prýmek 12. 12. 2012, 09:52:56
Na to by mal byt nejaky slogan: "Chcete zvysit rychlost systemu o 50%? Skompilujte si jadro a mate to hned, bez starosti!".
A všiml sis, že rozdíl je jenom v user space, zatímco system je pořád stejný? Zajímavý, že :)

A jak přesně bys interpretoval zátěž procesoru na 300%? :)
Název: Re:Kompilacia sa oplati!
Přispěvatel: Rax 12. 12. 2012, 11:42:39
V linuxu CPU na 300 % znamená tři jádra na 100 %, každé jádro má svých 100 % a ty procenta se pak sčítají. Jak toto numero interpretovat se neodvažuji ani pomyslet ;)
Název: Re:Kompilácia sa oplatí
Přispěvatel: Blaazen 12. 12. 2012, 13:11:42
Jestli zacatek grafu do poloviny charakterizuje situaci s puvodnim jadrem a zbytek grafu situaci po novu, tak mi pripada, ze jsi dosahnul presne opacne situace, user procesy zerou mnohem vice casu, nez predtim a server jsi zpomalil....
Vždyť jasně píše: Viz obrazok, kde je vytazenie CPU so skompilovanym kernelom a potom s distribucnym Ubuntu jadrom (chcel som po dlhsej dobe skusit rozdiel).

Podle obrázku je opravdu rozdíl zanedbatelný. Jestli něco dokáže podstatně snížit zátěž CPU, tak je to vypnutí flashe. Možná bys získal lepší výsledky na Archu nebo Gentoo, když už máš zálibu v kompilování (což je chvályhodné).   :)
Název: Re:Kompilacia sa oplati!
Přispěvatel: poiu 13. 12. 2012, 01:58:56
Jses si jistej? Krom toho ze jsem si z obrazku musel domyslet rozdil pred a po ( za takhle nejasne udelany srovnani se na vs skrtaj protokoly ), tak hraje roli mraky promennych.
Neslo mi o mraky premennych - islo mi o to, ze sa oplati kompilovat pri nejakej default konfiguracii takmer vsetkeho; jedina zmena bolo nastavenie configu jadra (+prakticky aj ze som to kompiloval ja a nie Ubuntu build servery).

4. Drivery - jak vis co je presne v tvem pocitaci? Ja to vedel kdysi kdyz pccka nebyly tak slozity. Pet driveru stacilo k zivotu.
Dneska fakt nevim jaky svab mi obstarava senzory pres i2c a co za acpi driver je kde vim jen odhadem. Ruzny power management drivery muzou delat sakra rozdil. Tim spis ze tech pocitacu ma kolem sebe clovek mraky. O driverech pro embedded platformy ani nemluvim. Tam jsou treba ruzny virtualni zarizeni pro flashe,bootloadery etc. Ty to vis z hlavy? To ses teda krute dobrej.
Par veci si pamatam, co si nepamatam som vyhadzal a system sa (co do funkcnosti) z mojho pohladu sprava rovnako, vratane inak nedolezitych zariadeni ako su senzory atd. Nezarucujem, ze su tam vsetky zariadenia rovnake - ale kedze mi vsetko pouzivane funguje, tak mi nevadi chybajuci ovladac pre jadrove hlavice alebo ktovie co tam vsetko je.

6. To neni tak jednoduchy kluku usata! Jak vis ze je system rychlejsi o xx%? Nemas ted nahodou jinej scheduler co? Jsou cisla co ti rika system a pak je skutecny stav. Co jsi jel za benchmarky?
Scheduler som nemenil, resp. nedaval som tam patch na jeho zmenu proti vanilla jadru.
Keby som aj mal iny scheduler, tak ako by mi to vadilo? Najskor bol pocit, ze to chodi s distribucnym jadrom nejak pomalsie a potom som sa pozrel sem a je to dost dobre vidiet na 5 minutovych priemeroch. Ci je za tym novy scheduler alebo cierna magia, to mi je jedno - ak to beha pomalsie a podobne tasky / loady zeru viac CPU a teda CPU ide v spickach "nadoraz" .
Název: Re:Kompilácia sa oplatí
Přispěvatel: alfonza 13. 12. 2012, 08:02:50
Zdravím,

no trošku tedy nechápu co si mám představit pod pojmem, že jde CPU na doraz? Provede operaci rychleji, nebo disk již není úzké hrdlo, nebo se provede operace při větším taktu? Můžete blíže specifikovat, jak vidíte to, že počítač se opravdu chová "ekonomičtěji" (viz, spotřeba el. energie, opotřebení součástí, teplota vnitřního prostoru, rychlost zpracování více operací najednou vs rychlost zpracování jedné operace atd. )?


Název: Re:Kompilácia sa oplatí
Přispěvatel: alfonza 13. 12. 2012, 08:05:54
na druhou stranu neříkám, že to není možné a funkční. Jak dlouho již používáš vlastní jádro? Zkoušel jsi i novější jádro?
Název: Re:Kompilacia sa oplati!
Přispěvatel: Pavouk106 13. 12. 2012, 09:37:32
4. Drivery - jak vis co je presne v tvem pocitaci? Ja to vedel kdysi kdyz pccka nebyly tak slozity. Pet driveru stacilo k zivotu.
Dneska fakt nevim jaky svab mi obstarava senzory pres i2c a co za acpi driver je kde vim jen odhadem. Ruzny power management drivery muzou delat sakra rozdil. Tim spis ze tech pocitacu ma kolem sebe clovek mraky. O driverech pro embedded platformy ani nemluvim. Tam jsou treba ruzny virtualni zarizeni pro flashe,bootloadery etc. Ty to vis z hlavy? To ses teda krute dobrej.
5. Co je za moduly loadovano a co ne?
Člověče, třeba já s Gentoo mám jádro zkompilovaný (podle mě) krásně. Drivery jsou vyházený úplně maximálním způsobem. Mám jednu zvukovku, jednu síťovku, jednu wifi, jeden kontroler na zjišťování napětí/teploty, vyházel jsem podporu ATA, nastavil si maximální počty CPU, GPU. Naposledy jsem řádil v Kernel hacking sekci - neuvěřitelný, co je tam věcí, který běžně nepotřebuješ.

Moje jádro má teď asi 3,88MB, po dlouhý době se začalo konečně opět zmenšovat (jsem agresivnější, když kompiluju nový) a je téměř výhradně nemodulární - vše je v jádře, kromě wifi driveru. A ten příště zkusím taky zahrnout, nepotřebuje teoreticky externí firmware, aby to jelo.
Název: Re:Kompilacia sa oplati!
Přispěvatel: Jakub Galgonek 13. 12. 2012, 09:54:38
a je téměř výhradně nemodulární

Jaké to má výhody? Třeba na mém notebooku mi systém s nemodulárním jádrem bootoval déle.
Název: Re:Kompilácia sa oplatí
Přispěvatel: trubicoid2 13. 12. 2012, 10:39:30
Jaké to má výhody? Třeba na mém notebooku mi systém s nemodulárním jádrem bootoval déle.

no to je dost divny, az bych tomu skoro neveril

vyhody nemodularniho: nepotrebujes initrd; pokud jadro prenasis na jiny stroj, tak se nemusis babrat s /lib/modules
nevyhody: nejde udelat rmmod

pavouk: mam na 3 strojich jadro 3.3-3.5MB, taky zalezi na kompresi, ja mam xz
Název: Re:Kompilácia sa oplatí
Přispěvatel: Mirek Prýmek 13. 12. 2012, 11:18:19
vyhody nemodularniho: nepotrebujes initrd
Off topic: kdyz jsem tady v jakesi diskusi tvrdil, ze initrd je zlo a rozumne udelany system ho nepotrebuje, byl jsem za vola... Ale to se stava :)
Název: Re:Kompilacia sa oplati!
Přispěvatel: poiu 13. 12. 2012, 11:22:01
Moje jádro má teď asi 3,88MB, po dlouhý době se začalo konečně opět zmenšovat (jsem agresivnější, když kompiluju nový) a je téměř výhradně nemodulární - vše je v jádře, kromě wifi driveru. A ten příště zkusím taky zahrnout, nepotřebuje teoreticky externí firmware, aby to jelo.
Podobne to mam aj ja, ale bez wifi driveru.

no trošku tedy nechápu co si mám představit pod pojmem, že jde CPU na doraz? Provede operaci rychleji, nebo disk již není úzké hrdlo, nebo se provede operace při větším taktu? Můžete blíže specifikovat, jak vidíte to, že počítač se opravdu chová "ekonomičtěji" (viz, spotřeba el. energie, opotřebení součástí, teplota vnitřního prostoru, rychlost zpracování více operací najednou vs rychlost zpracování jedné operace atd. )
CPU s distribucnym jadrom v dobe spicky nestiha obsluzit vsetkych za taku kratku dobu ako so mnou skompilovanym jadrom. Pozna sa to na sluzbach, kde je dost citit oneskorenie (multimedia / hry). Takze je to z pohladu uzivatelov (vratane tych neznalych zmeny) mierne zasekavanie a z pohladu systemu je to vacsia zataz CPU s distribucnym jadrom.

na druhou stranu neříkám, že to není možné a funkční. Jak dlouho již používáš vlastní jádro? Zkoušel jsi i novější jádro?
Vo vseobecnosti (nie len tam) asi tak 5 rokov - ale to bolo len pri skusani a islo o dalsie patche atd, takze som bral pre tieto ucely kompilaciu jadra ako nutnost a to nie z vykonnostneho pohladu. Vsetci ma nejak presvedcovali, ze v distribucii moze byt rovnako dobre jadro, tak som im veril.
Kompilaciu tam som robil zase preto, ze aj ked sa pisalo rozdieloch v jednotkach %, tak som chcel dosiahnut aspon tie - nech sa ten HW vyuzije ked uz je taky aky je.
Toto pisem, lebo som nevedel, ze ide aj o desiatky %.

Novsie jadro ako 2.6.32 som neskusal, kedze si nie som nejak isty jeho stabilitou / otestovanostou s tymi utilitami, co su v stable Ubuntu. Raz s tym bol problem u nejakej utility (segfaultovala), preto sa aspon pri takychto nasadeniach drzim tej verzie jadra, co mi dodava distribucia.
Název: Re:Kompilacia sa oplati!
Přispěvatel: Mirek Prýmek 13. 12. 2012, 11:28:53
CPU s distribucnym jadrom v dobe spicky nestiha obsluzit vsetkych za taku kratku dobu ako so mnou skompilovanym jadrom.
Zaver "je to diky uzivatelske kompilaci" je ale prilis silny - jak uz tady zaznelo, muze to byt jinou verzi zkompilovaneho jadra, nepritomnosti patchu, ktere tam z nejakeho duvodu distribuce ma, jinou verzi kompilatoru atd. atp.
Název: Re:Kompilácia sa oplatí
Přispěvatel: Jakub Galgonek 13. 12. 2012, 11:34:35
no to je dost divny, az bych tomu skoro neveril

Moc jsem to nezkoumal, ale hlavní příčina asi byla ta, že modulární jádro natahovalo moduly a inicializovalo HW souběžně s běžícím initem (initrd nepoužívám).
Název: Re:Kompilácia sa oplatí
Přispěvatel: Pavouk106 13. 12. 2012, 13:54:01
Já mám nemodulární, protože jede na jednom jedinym HW, kterej se nemění a líbí se mi, když můžu srovnávat přímo velikost jádra. Pak vím, jakou cestou se vydávám. Teď jsem právě začal jádro proškrtávat.

3,88MB má jádro 3.5.7 kompilované z Gentoo sources (jen pro úplnost).

A jsem rád, že jsem teď konečně přišel ke grafu, kde je vidět nějaká výhoda proškrtaného jádra :-)
Název: Re:Kompilácia sa oplatí
Přispěvatel: Anonym 13. 12. 2012, 14:34:59
Podle toho grafu mi prijde ze novy kernel je pomalejsi. Pokud budu predpokladat, ze bezely stejne procesy na obou kernelech, tak s novym jadrem spotrebovaly vice procesoroveho casu na stejnou praci (=integral funkce "user" je vetsi s novym jadrem)
Název: Re:Kompilácia sa oplatí
Přispěvatel: Strašidlo 13. 12. 2012, 15:04:19
Anonym:

autor psal, že měl nejdříve vlastní, zkompilované jádro a poté distribuční. To je jako kdyby přesedlal ze škodovky na favorita a zmínil, že je to pomalejší, což neodporuje jeho tvrzení.
Název: Re:Kompilácia sa oplatí
Přispěvatel: trubicoid2 13. 12. 2012, 15:38:04
Off topic: kdyz jsem tady v jakesi diskusi tvrdil, ze initrd je zlo a rozumne udelany system ho nepotrebuje, byl jsem za vola... Ale to se stava :)

nee, initrd je porad zlo, nu ale distribuce jdou tou zlou cestou :)
Název: Re:Kompilácia sa oplatí
Přispěvatel: trubicoid2 13. 12. 2012, 16:18:33
jinak si myslim, ze bys mel zkompilovat stejny jadro, jako distribucni a potom pustit nejaky benchmarky, trebas http://people.redhat.com/mingo/cfs-scheduler/tools/hackbench.c nebo neco jinyho, i kdyz ve vypocetnich benchmarkach napriklad na jadru moc nezalezi

jeste se da srovnat free s distribucnim jadrem a s tvym, melo by byt vic volne pameti, ale rozdil bude tak malo, ze se to pozna snad jen na embeded zarizeni