# wydajność (performance)

## C1REX

Każdy niemal użytkownik systemu (a zwłaszcza gentoo) chce uzyskać maksymalną jego wydajność. Chciałbym zachęcić do podawania ciekawych tricków, linków, ciekawostek i rad na ten temat. 

Ja zacznę od tego linka 

https://forums.gentoo.org/viewtopic.php?t=139455

to post na temat ustawień karmela 2.6 pod kątem wydajności.

Mam nadzieję, że temat szybko się rozwinie.

----------

## fallow

hello  :Smile: 

jak dla mnie , trzeba bylo takiego watka hehe  :Smile: 

nie okrywam ameryki , ale dobrze jest zmienic sysklogd lub innego , na metalog`a z wlaczona opcja buforwania,jest szybciej 

pozdro  :Smile: 

----------

## misterLu

reinstalowałem Gentoo (mam teraz 2004) i nowy kernel 2.4.25. Po primo postarałem się go maksymalnie odchudzić, czyli uważnie czytałem info o każdej opcji i wywalałem do skutku  :Smile: 

Po drugie , dostępne opcje kompilacji są athlon/intel/itp, a nie ma np athlona-xp, czyli mojego procesora. Edytowałem więc plik /usr/src/linux/arch/i386/Makefile i zmieniłem tam:

ifdef CONFIG_MK7

CFLAGS += $(call check_gcc,-march=athlon,-march=i686 -malign-functions=4)

endif

na

ifdef CONFIG_MK7

CFLAGS += $(call check_gcc,-march=athlon-xp,-march=i686 -malign-functions=4)

endif

Nie wiem ile i czy w ogóle to usprawni mój system, ale czemu nie spróbować  :Wink: 

----------

## _Adik_

jak to nie ma athlona-xp?

march=athlon-xp, juz na poczatku instal;acji miales to wpisac w /etc/make.conf...

----------

## C1REX

Z tego co wiem, to karmel ma własne flagi, które ustawia się w 

/usr/src/linux/Makefile 

/usr/src/linux/arch/i386/Makefile

----------

## fallow

hello:)

tak wlasnie , flagi dla kernela ustawia sie oddzielniie ; ja tez od jakiegos czasu probuje roznych zestawow flag na kernel , no i staram sie dosc agresywnie , poki co widac wzrost wydajnosci np. w operacjach i/o o jakies 15%

pozdro:)

----------

## misterLu

 *_Adik_ wrote:*   

> jak to nie ma athlona-xp?
> 
> march=athlon-xp, juz na poczatku instal;acji miales to wpisac w /etc/make.conf...

 

jest i jezeli się emerguje kernel gentoo-owy, to pewnie on gokompiluje z tym flagami z make.conf, ale on tam defaultowo wrzuca tyle shitów , ze wole sciągnąc sobie kernel z kernel.org i zrobić wszystko ręcznie.

 *fallow wrote:*   

> 
> 
>  ja tez od jakiegos czasu probuje roznych zestawow flag na kernel , no i staram sie dosc agresywnie , poki co widac wzrost wydajnosci np. w operacjach i/o o jakies 15%
> 
> 

 

1)podziel sie jakie to flagi i gdzie je dopisujesz. 

2) jak sie bada wzrost wydajności systemu ?

nowe (2004) Gentoo mam z takimi flagami:

```

CFLAGS="-O3 -pipe -march=athlon-xp -fforce-addr -fomit-frame-pointer -funroll-loops -frerun-loop-opt -frerun-cse-after-loop -falign-functions=4"

```

nie wiem czy można tak (ostro ?) kernel potraktować..

----------

## fallow

oki , juz sie dziele.

przez kilka ostatnich dni w kolko kompilowalem kernel

 z roznymi flagami i robilem najczesciej test

szybkosci systemu plikow na bonnie++,w sumie nie ma za wielkiego

 pola do zmian,bo kernel jest dosc wrazliwy na optymalizacje i czesto

  albo po prostu sie nie skompiluje , albo dostawalem blad przy linkowaniu ,

   albo kernel panic , albo po prostu black screen i nic .

wedlug "linux kernel mailing list" (pkt8.2) nie zaleca sie

 przy kompilowaniu kernela z wlasnymi flagami stosowania

  rozwiajania petli i wklejania funkcji w miejscu wywolania,

  no i rzeczywiscie po stosowaniu takich flag rezultaty byly gorsze.

  probowalem tez uzyc kilku flag ktora narazie sa w fazie eksperymentalnej 

  albo testowej takich jak  -fssa i pokrewne -fssa-ccp lub -fssa-dce oraz fnew-ra

   ale konczylo sie to "black screenem",chcialem tez uzyc podwojnej

    optymalizacji najpierw z -fprofile-arc, a pozniej w drugiem przebiegu

     z -fbranch-probabilities ale wtedy byly bledy przy linkowaniu,

zadzialal np. -ftracer (man gcc : Perform tail duplication to

 enlarge superblock size. This transformation simplifies the control 

 flow of the function allowing other optimizations to do better job)

 ,dobrze jest tez odpowiednie opcje konfiguracji kernela pod katem wydajnosci.

talie jak  : 

```

  -w general settings : 

  -BSD process acc.

  -IPC 

  

 -w procesor type and feautures  :

    -HPET timer

    -Preemtible kernel (w linku ktory podal C1Rex radzi sie wylaczenie tej opcji ,

     ale ja przestawiam swoj subiektywny punkt widzenia , 

     i uwarzam ze czas rekacji i tak mozna zmniejszyc za pomoca tej opcji )

    -MTRR

   i nie uzywac : 

   -Generix 86 support

   -wszystko z kernel hacking

   

  -w bus option , uzywac  : 

  -vector basend irq indexing

  

  w device drivers identycznie (jak w linku) (ctr+c,ctrl+v)

  

  Device Drivers

-->ATA/ATAPI/...

...Enable:

.....Include IDE/ATA-2 DISK support

.....Use multi-mode default

...Disable:

.....IDE Taskfile Access

.....IDE Taskfile IO

.....generic/default IDE chipset support

..-->PCI IDE chipset support

.......Enable:

..........Use PCI DMA by default when available

.......Disable:

...........Sharing PCI IDE interrupts support 

 
```

ok , teraz flagi   

zmiany wprowadza sie w pliku /arch/i386/Makefile

podstawowa , to jak u MisterLu czyli :

czyli odpowiednia linia cflags-$(...) dla mojego athlona-tbird to K7 wiec w 

```

cflags-$(CONFIG_MK7)+= $(call check_gcc,-march=athlon-tbird $(align)-functions=4)

```

no i wyzej czyli w CFLAGS , zaraz pod komentarzami 

```

CFLAGS += -O3 -fexnpensive-optimizations -pipe -mmmx -m3dnow -ftracer 

```

nie wiem czy to to dobry zestaw ale przy takim uzyskiwalem najwiekze wyniki , 

-03 implikuje wedlug mana gcc  -fexpensive-optimizations , 

ale dodalem tak dla pewnosci,moze to i glupie ale ...

-logiczne tez wydaje sie zwiekszenie --param max-inline-insns=900 (std=600) , 

ale z tym uzyskiwalem

 w niektorzych parametrach zwiekszenie 

 a w innych zmniejszenie wydajnosci wiec z tego zrezygnowalem ,

  jak z reszta mowi LKML.

 -fmovable-all-movables i -fprefetch-loop-arrays tez dawalo gorsze wyniki

 nie wiem czy march ktore zostalo zmienione w cflags ustawi mmx i 3dnow ,

  wiec dopisalem je w CFLAGS 

 no i zeby byla jakas tabelka , to z dolu wyniki

  na reiserze przed i po "optymalizacji"

 oraz porowananie do innych systemow plikow przed optymalizacja

 wszystko jest subiektywne i pewnie mozna lepiej,

 ne wieszajcie psow gdyby co hihi  :Smile:  , jesli ktos wie lepiej albo wiecej ,

  to niech skoryguje moje bledy i podzieli sie swoimi doswiadczeniami  :Smile: 

 pozdro  :Smile: 

```

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-

                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--

Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP

r3_przed       512M  7605  79 34131  23 12375   9 11674  85 29697  12 177.5   1 

r3_po          512M 11589  91 50242  41 17278  13 13049  96 38827  17 280.0   1

-------------------------------------------------------------------------------

xfs_bez        512M 11416  98 36395  17 11585   7 12518  92 30777  12 182.5   0

ext3_bez       512M  9864  97 35918  35 12186   9 11300  82 32600  12 191.4   0

jfs_bez        512M  9295  99 34634  16 10894   6 12781  91 30732  10 192.1   0

                    ------Sequential Create------ --------Random Create--------

                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--

              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP

przed            32 12853  98 +++++ +++  9067  81 10699  87 +++++ +++  7611  80 

po               32 11421  97 +++++ +++  8635  83 10716  93 +++++ +++  9231  99

-------------------------------------------------------------------------------

xfs_bez          32  1453  26 +++++ +++  1490  19  1580  32 +++++ +++   358   5

ext3_bez         32   317  99 +++++ +++ 30967  99   320  99 +++++ +++   883   9

jfs_bez          32  6647  30 +++++ +++  5216  25  1057  15 +++++ +++   226   2

```

----------

## C1REX

2.6 Kernel (and headers) + NPTL Guide

https://forums.gentoo.org/viewtopic.php?t=136816&highlight=bootstrap

----------

## C1REX

Może nowe2.6 ma dużo opcji, ale 2.4 jest szybsze.

Polecem gaming-sources

----------

## fallow

I ciekawy link  :Smile: 

Renincing X howto  :Smile: 

http://www.public.iastate.edu/~jpcox/xorg_instructions

pozdro  :Smile: 

----------

## C1REX

Nie jestem pewien, czy było to na tym forum powiedziane.

To, że wiele flag nie jest uwzględniana podczas kompilacji, to większaść z Was wie, ale nie każdy wie, że USE też jest filtrowane. 

Jeśli ktoś zwrócił uwagę na bootstrapa, to tam nic nie jest uwzględniane. Jeśli nie chcemy, aby został zainstalowany kompilator javy, to w podręczniku została podana komenda 

```
# export USE="-java"
```

Jeśli zablokujemy javę w make.conf, to nic nam to nie da. 

To samo jest ze wsparciem dla innych rzeczy. 

export jest silniejszy od ustawień lokalnych. 

Warto się tym pobawić, bo daje to nowe mozliwości optymalizacji.

----------

## fallow

oki , maly tips 

kiedy uzywa sie 2.6 , denerwujace troche , bo dlugo trwa jest czekanie na 

"calculating module dependiences" 

mozna to prosto wywalic z baselayout a robic to przeciez nie przy kazdym starcie tylko kiedy zajdzie potrzeba , np . po zmianie w modulach kernela

wystarczy w /etc/init.d/modules 

zahashowac  : 

```

   #if [ -z "${CDBOOT}" ]

        #then

        #       ebegin "Calculating module dependencies"

        #       /sbin/modules-update &>/dev/null

        #       eend $? "Failed to calculate dependencies"

        #fi

```

a komende modules-update wydawac wlasnie recznie w razie potrzeby ..

no i dobrym pomyslem tez jest nie dodawac x font servera do runlevelow , tylko robic to wtedy kiedy cos zmieni sie w fontach ...  :Smile: 

pozdro  :Smile: 

----------

## zytek

Ktoś już stawiał system z NPTL ?

Daje to zauważalnego kopa przy starcie systemu? I przy używaniu molochów jak KDE? Bo chętnie bym się tym pobawił, tylko nie wiem czy warto..

Oraz - jak przejść na NPTL na już postawionym systemie? Jaka kolejność "działań" ?

----------

## fallow

https://forums.gentoo.org/viewtopic.php?t=170852  :Smile: 

----------

## zytek

hie hie.. dzięki ;>

zapoznałem się z linkami i myślę.. że odpuszczę sobie to na razie ;]

----------

## C1REX

Bardzo dużego kopa dla kde daje wywalenie arts. (z "autostartu" a nie z systemu)

Używałem alsy i myślałem, że arts nie startuje, ale ostatnio wywaliło mi komunikat o krytycznym błędzie arts i się zapytało, czy zaprzestac z jego korzystania. Teraz kde odpala mi się ok. 2x szybciej niż wcześniej i mniej ramu zżera.

Dodatkowo można w make.conf dać

USE="alsa -arts"

----------

## Woocash

Ja ostatnio wywaliłem sobie arts, po wpisaniu komendy emerge -C arts, KDE już nie wstało, próbowałem ponownie emergować arts'a i tez nici z tego  :Sad:  KDE padło.

----------

## grzewho

 *fallow wrote:*   

> hello 
> 
> jak dla mnie , trzeba bylo takiego watka hehe 
> 
> nie okrywam ameryki , ale dobrze jest zmienic sysklogd lub innego , na metalog`a z wlaczona opcja buforwania,jest szybciej 
> ...

 

no nie mów mi, że syslog drastycznie wpływa ci na wydajność kernela

----------

## fallow

 *grzewho wrote:*   

> 
> 
> no nie mów mi, że syslog drastycznie wpływa ci na wydajność kernela

 

Nic takiego nie powiedzialem , przeczytaj jeszcze raz  :Wink: 

powiedzialem ze nie odkrywam amerykii , i ze JEST SZYBCIEJ , nie ze jest DRASTYCZNIE szybciej , nie powiedzialem tez ze wpylwa na wydajnosc KERNELA. moge teraz dodac w ramach uzupelnienia ze wzrost szybkosci jaki zauwarzylem to szybsze przewijanie tekstu pod konsola np. przy kompilacji i instalacji softu gdzie przewija sie masa tekstu , co dla mnie ma znaczenie

pozdro:)

----------

## grzewho

ok, spoko. myslalem, ze temat dotyczy poprawy wydajnosci kernela, nie przewijania konsoli  :Razz:   :Wink: 

pozdrawiam

/g

----------

## fallow

 :Razz:   :Wink: 

watek jest ogolnie o wydajnosci 

pozdro:)

----------

## C1REX

Wynalezione na forum. 

 *rusty wrote:*   

> Try runnig famd. It helps Gnome and KDE to access filesystem faster.
> 
> ```
> emerge -av fam
> 
> ...

 

----------

## _troll_

To dopiero nie bedzie Ameryka, ale Xsy dostana _prawdziwego kopa_, jesli zamiast KDE czy GNOME uzyjecie jakichs mniej zasobozernych menedzerow.

Polecam:

- WindowMaker

- XFCE

- Fluxbox

- kahakai

- e

w tej wlasnie kolejnosci. W porownaniu z XFCE oraz flux'em, WindowMaker jest troche ubogi i wolno rozwijany. Jednak - jest przy tym najszybszy, ma b. dobre mozliwosci konfiguracji i jestem od niego uzalezniony (probowalem z niego zrezygnowac juz kilka razy - zawsze pokornie wracalem  :Razz:  - to chyba kwestia przyzwyczajenia).

Fluxbox ma (prawie pelna) obsluge systray'a (w tym calego badziewia z KDE!!!). XFCE oraz Flux poprawnie wyswietlaja gdesklety (nie probowalem z superkaramba).

Oprocz wymienionych wyzej jest mnostwo innych malych i szybkich menedzerow. Wyprobujcie - moze Wam sie ktorys spodoba  :Wink: 

Na KDE oraz GNOME swiat sie nie konczy. (tym bardziej, ze to straszne kobyly).

Pozdrawiam,

Przemek

----------

## nelchael

 *fallow wrote:*   

> oki , maly tips 
> 
> kiedy uzywa sie 2.6 , denerwujace troche , bo dlugo trwa jest czekacie na 
> 
> "calculating module dependiences" 

 

To zalezy ile kto ma modulow. Na serwerze mam jajko (2.4.26) bez obslugi modulow wogole i dziala pieknie, na laptopie jajko 2.6.6 ma jeden modul: radeon.ko  :Smile: 

----------

## fallow

" czekacie "  hehe , nie zauwarzylem tych literowek , ja mam jeden modul nvidii przy Calculating Dependiences czekam okolo 4-5sekund , wiec wywalilem ze skryptow , bo i po co to ma byc robione przy kazdym bootowaniu i mam tracic 4-5 sekund na cos co moge zrobic w razie potrzeby

----------

## nelchael

U mnie to zajmuje cos kolo 1 sekundy.

----------

## C1REX

A po co nawet tą jedna czekać, skoro to i tak nie jest potrzebne?

Ja mam cały czas te same moduły, wiec mi ten wpis przeszkadzał.

----------

## nelchael

Tez racja  :Smile:  A jest jakas metoda, zeby `emerge -uav world` nie zmienialo tego pliku?

----------

## fallow

jak mozna przyspieszyc uruchamianie uslug podczas bootowania , nawet do polowy czasu w extremalnych sytuacjach  :Smile: 

ustawic  

```

RC_PARALLEL_STARTUP="yes"

```

w /etc/conf.d/rc

jednak rownolegle startowanie uslug nie dziala ze wszystkimi process schedulerami , np. ze staircase .dziala z nicksem , stand , nie wiem jeszcze jak z EBS schedulerem i SPA .

[edit] ze staircasem juz dziala [/edit]  :Smile: 

pozdro  :Smile: 

----------

## fallow

chyba nie wszyscy sie natkneli na bardzo fajny tools z portage od nazwie "verynice" , ktroy na podtawie /etc/verynice.conf pozwala na automatyczne ustawianie priorytetu odpalanym aplikacjom na podstawie konfiguracji uzytkownika  :Smile:  fajna sprawa

----------

## zieloo

A jesli nie ma tyle modułów to można sie pokusic o ich wylaczenie. Nie wiem dlaczego ale jakos mało osob to robi...

----------

## C1REX

Super lekkie KDE: (kdebase)

```
 DO_NOT_COMPILE="debian doc drkonqi kappfinder kate kcheckpass kdebugdialog kdeprint kdesu kdm kfind khelpcenter khotkeys kicker klipper kmenuedit konsole kpager kpersonalizer krichtexteditor kscreensaver kdepasswd ksysguard ktip kxkb nsplugins kreadconfig kdialog kstart ksystraycmd l10n legacyimport ksplashml kwin pics" emerge kdebase
```

więcej:

https://forums.gentoo.org/viewtopic.php?t=184235&start=0

----------

## Pepek

 *C1REX wrote:*   

> Super lekkie KDE: (kdebase)
> 
> ```
>  DO_NOT_COMPILE="debian doc drkonqi kappfinder kate kcheckpass kdebugdialog kdeprint kdesu kdm kfind khelpcenter khotkeys kicker klipper kmenuedit konsole kpager kpersonalizer krichtexteditor kscreensaver kdepasswd ksysguard ktip kxkb nsplugins kreadconfig kdialog kstart ksystraycmd l10n legacyimport ksplashml kwin pics" emerge kdebase
> ```
> ...

 

Ale to dobre dla osób, które używają innego WM-a, a kdebase potrzebują, bo używają jakiegoś progsa, który tego wymaga. Jako super lekki WM nie zadziała, bo nie kompilujesz m.in. kwin-a, który w KDE odpowiada za obsługę mechanizmu "okienek".

Pozdrówki.  :Cool: 

----------

## C1REX

Właśnie jestem w fazie testów, co można wywalić, by samodzielne kde było używalne. 

Część rzeczy wydaje się oczywista (khelpcenter), ale w przypadku wielu innych idzie się na kompromis.

----------

## tomek_22

 *fallow wrote:*   

> I ciekawy link 
> 
> Renincing X howto 
> 
> http://www.public.iastate.edu/~jpcox/xorg_instructions
> ...

 

co to dokladnie daje? bo u mnie X wlaczaja sie kolo sekundy wolniej, i przy wylanczaniu jescze tak dziwnie wyglada pulpit  :Very Happy: 

----------

## fallow

 *tomek_22 wrote:*   

>  *fallow wrote:*   I ciekawy link 
> 
> Renincing X howto 
> 
> http://www.public.iastate.edu/~jpcox/xorg_instructions
> ...

 

daje to tyle , ze XY sa zapuszczone na nizszym , czyli wyzszym priorytecie aby zwiekszyc interaktywnosc , bylo to kiedys (w czasach tego posta bo jest juz lekko leciwy) mocno wskazane przy Nick`s Schedulerze popularnym kiedys w love-sources (tips jest od Steel`a300) i przy O(1).Przy Staircasie nie bylo to konieczne.

Ja do tej pory tego uzywam ale juz w inny sposob.

w moim .xinitrc mam po prostu taka linijke.

```
pgrep X | xargs renice -10 
```

cheers  :Smile: 

----------

## C1REX

```
DO_NOT_COMPILE="debian doc drkonqi kappfinder kate kcheckpass kdebugdialog kdeprint kdesu kdm kfind khelpcenter khotkeys klipper kmenuedit kpager kpersonalizer krichtexteditor kdepasswd ksysguard ktip kxkb nsplugins kreadconfig kdialog kstart ksystraycmd l10n legacyimport pics" emerge kdebase
```

Lżejsze, ale używalne kde. Konsola, splash i wygaszacz zostawiony. Najważniejsze, to nie wywalać kicker'a i kwin'a. Resztę można dopasować do własnych potrzeb.

Żeby upewnić się co każdy składnik robi, można starać się go zabić.

# killall kicker

przykładowo zabije panel główny. Sporej części pozostałych rzeczy, nawet się nie odczuje.

----------

## rofro

ja znalazłem taki: https://forums.gentoo.org/viewtopic.php?t=231170

----------

## piotrek_123

 *_troll_ wrote:*   

> 
> 
> Fluxbox ma (prawie pelna) obsluge systray'a (w tym calego badziewia z KDE!!!). XFCE oraz Flux poprawnie wyswietlaja gdesklety (nie probowalem z superkaramba).

 

Superkaramba nie jest poprawnie wyświetlana na innych biurkach niż te z KDE i Gnome'a. 

Zamiast przezroczystosci ma sie czarne tlo i to troche burzy koncepcje sk we fluxie, no chyba, ze chcesz miec czarna tapetke  :Very Happy: 

Pozdroofki

----------

## danrok^

 *C1REX wrote:*   

> 
> 
> ```
> DO_NOT_COMPILE="debian doc drkonqi kappfinder kate kcheckpass kdebugdialog kdeprint kdesu kdm kfind khelpcenter khotkeys klipper kmenuedit kpager kpersonalizer krichtexteditor kdepasswd ksysguard ktip kxkb nsplugins kreadconfig kdialog kstart ksystraycmd l10n legacyimport pics" emerge kdebase
> ```
> ...

 

Gdzie mozna zobaczyc co dane opcje daja?

----------

## Dawid159

Na przykład tutaj http://docs.kde.org

----------

## rofro

Speeding up cache updates (reducing disk trashing)

montowanie cache do ramu, to może być ciekawe

----------

## fallow

 *rofro wrote:*   

> Speeding up cache updates (reducing disk trashing)
> 
> montowanie cache do ramu, to może być ciekawe

 

hm   :Very Happy:  b.ciekawe - trzeba wyprobowac 

THX

cheers.

----------

## Gogiel

Aile u Was startuja Xy? U mnie same Xy to 3-4 sek., a najnowszy XFCE to az 5-6 sek   :Mad:   :Shocked: 

----------

## C1REX

w 

/etc/make.conf

```
PORTAGE_NICENESS="15"
```

Daje nam znacznie większą responsywność podczas emergowania. Wadą jest trochę wolniejsza kompilacja. Stopień spowolnienia można regulować.

Wiecej info można znaleść np. na gentoo.wiki.com

BTW. Może warto dodać ten wątek do how-to, albo przykleić? Sporo ciekawych rzeczy można tu znaleźć.

----------

## C1REX

Jak ktoś tego jeszcze nie zrobił, to niech system zaktualizuje. Nowe OpenRC daje radę. U mnie jest stabilniej i sporo szybciej.

----------

## C1REX

```
CONFIG_FAIR_GROUP_SCHED=y"
```

Sprawdźcie, czy nie macie tej opcji włączonej. Podobno spowalnia działanie systemu.

https://forums.gentoo.org/viewtopic-t-690888-highlight-slow+kde.html

----------

