# Czy linux potrafi obsluzyc 2 rdzenie intela?

## gotrek

Chcialbym sie dowiedziec czy jest mozliwosc skompilowania gentoo z obsluga 2 rdzeni i czy wogole linuks sobie potrafi poradzic z taka obsluga czy zaden system nie potrafi jeszcze tego obsluzyc?

----------

## OBenY

A w czym tu mozna widziec jakis problem ? Zwykle SMP sie klania + HT, wiec bezproblemowo Linux to obsluguje  :Smile: 

----------

## wodzik

potwierdzam. u kumpla takie cus widzialem (nie pamietam czy desktop czy serv to byl)  tylko ze komp widzial zamiast jednego 2 proce. ciekawie to wygladalo na knoppiksie bo u gory pokazywal 2 pingwinki (znaczy sie wywniokowalismy ze to z powodu tego proca).

----------

## Poe

Moved from Polish to Instalacja i sprzęt.

----------

## evilav

A gdzie znaleź HOWTO do tego aby zainstalowa poprawnie gentoo na dwurdzeniowcu?? Posiadam Pentiuma D 805 (2x2,66GHz FSB533) jak dokonac takiej instalacji? Potrafie zainstalowac gentoo na amd64, x86. Ale aby wykorzystac dwa rdzenie to już nie;( Aha procesor nie posiada HT:( Pozdrawiam.

----------

## Kurt Steiner

A nie wystarczy w kernel wkompilowac SMP?

----------

## Raku

 *evilav wrote:*   

> A gdzie znaleź HOWTO do tego aby zainstalowa poprawnie gentoo na dwurdzeniowcu?? 

 

czy do zaznaczenia dwóch opcji w konfigu kernela trzeba pisać how-to?

----------

## evilav

yyyy no tego nie wiedzialem ze w kernelu sie zaznacza. Jesi tylko to to dzieki za odpowiedz  :Smile:  Aha jeszcze tylko to ma byc jako Modul czy wkompilowane na stale?? Na ludzki rozum to raczyj na stale. Pozdrawiam.

----------

## Raku

zaglądnij najpierw do konfigu kernela, a później zadawaj takie pytania... Jak ci się uda to zaznaczyć jako moduł, to osobiście przywiozę ci skrzynkę piwa.

----------

## pwe

 *evilav wrote:*   

> A gdzie znaleź HOWTO do tego aby zainstalowa poprawnie gentoo na dwurdzeniowcu?? Posiadam Pentiuma D 805 (2x2,66GHz FSB533) jak dokonac takiej instalacji? Potrafie zainstalowac gentoo na amd64, x86. Ale aby wykorzystac dwa rdzenie to już nie;( Aha procesor nie posiada HT  Pozdrawiam.

 

a po kiego mu HT jeśli sa 2 rdzenie dizycznie ???? douczyć sie polecam

----------

## danrok^

Gdyby miał HT, to miałby 4 jednostki wyliczeniowe, zamiast 2. Zawsze zysk  :Smile: 

----------

## gotrek

HT tak, ale to sie nazywa pentium extreme i za 4 potoki sie placi 3000 za najtanszy procesor z tego co sie orientuje, wiec moje 2x 2.6 ghz starcza:) a jak sprawa ma sie z gcc? ma jakis support 2 rdzeniow? potrafi to wykorzystac i kompilowac korzystajac z 2 rdzeni?

----------

## Aktyn

 *gotrek wrote:*   

> HT tak, ale to sie nazywa pentium extreme i za 4 potoki sie placi 3000 za najtanszy procesor z tego co sie orientuje, wiec moje 2x 2.6 ghz starcza:) a jak sprawa ma sie z gcc? ma jakis support 2 rdzeniow? potrafi to wykorzystac i kompilowac korzystajac z 2 rdzeni?

 

Samo gcc robi tylko jeden wątek zdajesie, natomiast program make może ich uruchomić więcej, jest taka opcja w make.conf -j, która oznacza ilość zadań. Z tym że czasem niektóre rzeczy wykładają sie podczas kompilacji z dużą liczbą równoczesnych zadań.

----------

## gotrek

A przy 2 rdzeniach ile moge dac watkow? domyslnie jest chyba 2 wiec spokojnie chyba 4 moge ustawic w takim wypadku?

----------

## Raku

czytałem gdzieś o zaleceniu n+1 (n - liczba procesorów)

----------

## evilav

 *gotrek wrote:*   

> A przy 2 rdzeniach ile moge dac watkow? domyslnie jest chyba 2 wiec spokojnie chyba 4 moge ustawic w takim wypadku?

 

Nie 4 a 3 :Smile:  Jest pare postów wyżej/niżej.

----------

## Aktyn

 *gotrek wrote:*   

> A przy 2 rdzeniach ile moge dac watkow? domyslnie jest chyba 2 wiec spokojnie chyba 4 moge ustawic w takim wypadku?

 

Tak jak polecają w hanbuku czyli ilość rdzeni (procesorów) + 1. Z tym że te trzeba pamiętać że każdy wątek szczególnie przy kompilacji dużych kompilatów i to jeszcze pod C++ (np koffice) potrafi zeżreć 230 Mb pamieci na jeden wątek, co przy trzech daje w sumie 720Mb. Jak dasz 4 to 840Mb, Zależy też od flag kompilatora. Oczywiście sa to wartości w porywach, ale mi sie już wyłożyła tak kompilacjia.

----------

## Riklaunim

z http://gentoo-wiki.com/Safe_Cflags

```
CHOST="x86_64-pc-linux-gnu"

CFLAGS="-march=nocona -O2 -fomit-frame-pointer -pipe"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j3"
```

----------

## epinefryna

Czytam, czytam helpy jakeś itp... i nic nie kumam. a emerguje się na jednym procku.

2xPII 300MHz, 512 MB RAM

MAKEOPTS="-j3"  zgodnie z jedynie słuszną dokumentacją 

Czyli jak rozumiem kompilować się powinno w 3 wątkach, które System rozdzieli na 2 procki...

U mnie jest tak w czasie emergowania czegokolwiek:

```
Tasks:  67 total,   2 running,  65 sleeping,   0 stopped,   0 zombie

Cpu0  : 98.0% us,  2.0% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si

Cpu1  :  2.0% us,  0.0% sy,  0.0% ni, 98.0% id,  0.0% wa,  0.0% hi,  0.0% si

Mem:    514920k total,   503300k used,    11620k free,    29216k buffers

Swap:   996020k total,        0k used,   996020k free,   229184k cached
```

Czyli cała pamięć zajęta a pracuje tylko jeden procek. Ale w topie czasem mi migną 3x cc  - to pewnie te trzy wątki kompilatora...

Oczywiście jak zapuszczę drugiego emerge to oba procki są zajęte w 100% i mam ciepło w pokoju  :Smile: 

Ale wtedy, że  niby co? 2 * emerge * -j3 = 6 wątków???

moj make.conf:

```
LANGUAGE=48

LINGUAS="pl en"

USE="amuled ccache crypto_libgcrypt crypto_openssl directfb disk-cache doc

     extensions fbcon firefox gzip java javascript matrox nfs qt3 qt4 remote

     samba stats tiff unicode userlocales -alsa -apm -arts -avi -berkdb -cups

     -eds -emboss -encode -esd -expat -foomaticdb -fortran -gdbm -gnome

     -gstreamer -kde -mad -mikmod -mp3 -mpeg -ogg -opengl -oss -pdflib -pppd

     -quicktime -spell -vorbis -xmms -xv"

CHOST="i686-pc-linux-gnu"

CFLAGS="-march=pentium2 -O2 -pipe"

CXXFLAGS="${CFLAGS}"

#ACCEPT_KEYWORDS="~x86"

PORTAGE_TMPDIR=/var/tmp

PORTDIR=/usr/portage

DISTDIR=${PORTDIR}/distfiles

PKGDIR=${PORTDIR}/packages

PORT_LOGDIR=/var/log/portage

#PORTDIR_OVERLAY=/usr/local/portage

# Default fetch command (5 tries, passive ftp for firewall compatibility)

#FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp \${URI} -P \${DISTDIR}"

#RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp \${URI} -P \${DISTDIR}"

# Using wget, ratelimiting downloads

#FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}"

#RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}"

# Lukemftp (BSD ftp):

#FETCHCOMMAND="/usr/bin/lukemftp -s -a -o \${DISTDIR}/\${FILE} \${URI}"

#RESUMECOMMAND="/usr/bin/lukemftp -s -a -R -o \${DISTDIR}/\${FILE} \${URI}"

GENTOO_MIRRORS="http://gentoo.prz.rzeszow.pl http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"

SYNC="rsync://gentoo.prz.rzeszow.pl rsync://rsync.gentoo.org/gentoo-portage"

RSYNC_RETRIES="3"

#RSYNC_TIMEOUT=180

MAKEOPTS="-j3"

#PORTAGE_NICENESS=3

AUTOCLEAN="yes"

FEATURES="sandbox ccache userpriv usersandbox"

CCACHE_SIZE="3G"

```

Czy ktoś mi wytłumaczy jak to powinno być, czy to normalne, że emerrguje mi się wszystko na 1 procku a drugi się byczy?

A jeżeli nie to co zrobić, żeby mi się kompilowało na obu prockach?

SKLEJONE:

może sam sobie odpowiem chociaż nie bardzo to rozumiem (czytaj wcale nie rozumiem)

po dodaniu userpriv i usersandbox   potrage się teraz uruchamia jako portage i jest tak:

```
top - 23:10:02 up 12:17,  5 users,  load average: 4.08, 4.59, 3.56

Tasks:  71 total,  10 running,  61 sleeping,   0 stopped,   0 zombie

Cpu0  : 42.3% us, 56.7% sy,  0.0% ni,  1.0% id,  0.0% wa,  0.0% hi,  0.0% si

Cpu1  : 25.2% us, 74.8% sy,  0.0% ni,  0.0% id,  0.0% wa,  0.0% hi,  0.0% si

Mem:    514920k total,   437936k used,    76984k free,    37304k buffers

Swap:   996020k total,      152k used,   995868k free,   288548k cached

```

ciekawe, że jak uruchamiałem kompilację jako root to miałem prawie 100% user time  a 0% system time

a teraz oba procki ruszyły razem ale user i system sobie dzielą...  szkoda, że nie pomierzyłem czasu kompilacji jakiegoś testowego ebuilda...

( a ten userpriv to włączyłem bo gdzieś wyczytałem, że tak podobno bezpieczniej  hehe a nie że szybciej..)

nic z tego nie kumam...

od raku: Używaj przycisku ZMIEŃ do edycji ostatniego posta, jeśli chcesz coś dodać do ostatniej wypowiedzi.

----------

## YANOUSHek

 *epinefryna wrote:*   

> [...] szkoda, że nie pomierzyłem czasu kompilacji jakiegoś testowego ebuilda... [...]

 

Zawsze możesz skorzystać z genlop w celu porównania czasów kompilacji konkretnego pakietu.

----------

## epinefryna

dzienks za hint z tym genlopem  :Smile: 

Przypatrywałem się w top co moje oba procki robią w czasie emergowania.

Jak idzie kompilacja na procesach cc1 (jakiekolwiek to C jest, plus, minus, nie wiem hehe) to jeszcze jak cię mogę kilkadziesiąt procent pokazuje na każdym.

Ale jak już idzie np proces ccplus1 czy jakoś tak 1 sztuka - to kicha, pracuje tylko jeden procek.

Że nie wspomnę, że jak coś tam się ściąga, coś do czegoś dodaje, sprawdza, zapisuje, itp... to wszystko na jednym procku idzie - kompletne marnotrawstwo czasu  :Wink: 

No i tak sobie myślę, że chyba jednak bardziej mi się będzie opłacać zrobić MAKEOPTS="-j2" i zapuszczać po dwa emergi na raz pod rootem (bez userpriv i userpriviledges) wtedy mam 2 x 100% ociązenia procków.  :Smile: 

Ma to sens?

Wiecie, mi nie chodzi o to żeby wycisnąć z procków  ile się da dla fanu, na PII300MHz kompilacja dużych rzeczy to nocka z głowy więc gdyby się dało zaprząc oba procki do pracy to byłoby sympatyczniej.

----------

## Aktyn

 *epinefryna wrote:*   

> Ale jak już idzie np proces ccplus1 czy jakoś tak 1 sztuka - to kicha, pracuje tylko jeden procek.
> 
> Że nie wspomnę, że jak coś tam się ściąga, coś do czegoś dodaje, sprawdza, zapisuje, itp... to wszystko na jednym procku idzie - kompletne marnotrawstwo czasu 

 

Niestety są rzeczy których nie da sie zrobić, albo sa niezrobione to tego, aby działały wielowątkowo.

Make oczywiscie podczas kompilacji z opcją -j2 powinien dać dwa zadania, co widać na liście proscesów że są dwa i jak piszesz pokazuje kilkadziesiąt procent pokazuje na każdym. Ale też wiedz że niektóre pakiety emergują sie tylko z opcją -j1, bo inaczej im nie wychodzi kompilacja.

Ale nie wiem na ile bezpieczne jest zapuszczanie dwa emerge na raz. No i szybki dysk albo dużo ramu tu też by sie przydało. Choc przy 300Mhz to raczej proce będą najwolniejsze, ale ram jest wskazany, żeby nie brakło.

----------

## Yatmai

 *Aktyn wrote:*   

> Ale nie wiem na ile bezpieczne jest zapuszczanie dwa emerge na raz.

  Swego czasu, gdy stawiałem Gentoo od nowa, a bardzo mi było spieszno by znów mieć sprawny sys, leciałem 5 równoległych kompilacji i nic się nie sypało. W ten sposób postawiłem praktycznie cały sys, łącznie z molochami jak kde  :Smile: 

Btw. wtedy jeszcze miałem "zalednie" 256 MB ramu, ale nic mi się nie wywaliło, a na szóstym terminalu spokojnie słuchałem muzyczki  :Smile: 

----------

