View previous topic :: View next topic |
Author |
Message |
bookwood Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/15628169645304bba7669f.png)
Joined: 06 Oct 2005 Posts: 128 Location: Dortmund
|
Posted: Sat Oct 07, 2006 5:32 pm Post subject: gcc-4.1.1 braucht mehr als 700MB Haupspeicher |
|
|
Ich habe ein Dell Latitude 810C Notebook mit 512MB (mehr geht nicht) Hauptspeicher. Ich nutze auf ihm seit drei Jahren begeistert Gentoo Linux. Ich habe jetzt auf gcc-4.1.1 upgegradet und mit emerge -e [system/world] alles neu kompiliert. Das einzige Packet das nicht mehr durchläuft ist kmail. Es läuft teilweise mehrere Tage und der Laptop swappt sich dum und dämlich. Im Top bekomme ich in der "Virt" Spalte, Werte von über 700 Megabyte angezeigt. Schalte ich den Swap aus stürzt der Kompiliervorgang nach wenigen Minuten mit einer Code: | i686-pc-linux-gnu-g++: Internal error: Killed (program cc1plus) | Medung ab (war scheinlich ist "out of memory" die Ursache). Als Compilerparameter benutze ich Code: | CFLAGS="-O3 -march=pentium3 -pipe -fomit-frame-pointer" | in meiner make.conf.
Jetzt meine Fragen:
- Kann ich dem gcc sagen "nimm nicht mehr als 200MB"?
- Kann ich in der make.conf nachträglich die Kompiler Optionen ändern (hatte mal gelesen die soll man nicht mehr verändern)?
- Kann ich über emerge, nur für kmail, dem gcc sagen nimm "-Os"?
besten Dank im Vorraus
PS: hier noch mein emerge -info
Code: |
Portage 2.1.1 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.4-r3, 2.6.17-gentoo-r8 i686)
=================================================================
System uname: 2.6.17-gentoo-r8 i686 Intel(R) Pentium(R) III Mobile CPU 1133MHz
Gentoo Base System version 1.12.5
Last Sync: Fri, 06 Oct 2006 17:00:09 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [disabled]
app-admin/eselect-compiler: [Not Present]
dev-java/java-config: 1.3.7, 2.0.30
dev-lang/python: 2.3.5-r2, 2.4.3-r4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache: 2.3
dev-util/confcache: 0.4.2-r1
sys-apps/sandbox: 1.2.17
sys-devel/autoconf: 2.13, 2.59-r7
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils: 2.16.1-r3
sys-devel/gcc-config: 1.3.13-r4
sys-devel/libtool: 1.5.22
virtual/os-headers: 2.6.17-r1
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O3 -march=pentium3 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-O3 -march=pentium3 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig distlocks metadata-transfer parallel-fetch sandbox sfperms strict userpriv usersandbox"
GENTOO_MIRRORS="http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/ ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo"
LINGUAS="de en"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://10.1.1.128/gentoo-portage"
USE="3dfx X aac aalib ada apache apm arts avi berkdb bidi bitmap-fonts blender-game browserplugin bzip2 cairo cdda cddb cdio clearcase cli cpudetection crypt cups cvs dga directfb divx4linux dlloader doc dri dts dvd dvdr dvdread elibc_glibc encode esd f77 fbcon ffcall ffmpeg firefox flac foomaticdb fortran gcj gd gdbm ggi gif gimp gimpprint gnome gpm graphviz gtk gtk2 haskell iconv imap imlib input_devices_keyboard input_devices_mouse ipv6 isdnlog java jbig jpeg jpeg2k kde kdeenablefinal kdehiddenvisibility kdexdeltas kernel_linux kleptohud lcms ldap libcaca libg++ libwww linguas_de linguas_en lirc lm_sensors lzo mad matroska mikmod mmx mmx2 mod_php motif mozcalendar mozdevelop mozilla mozsvg mpeg multislot nas ncurses netcdf nls nptl nptlonly nsplugin nvidia objc objc++ objc-gc oggvorbis openexr opengl oss pam pascal pcre pdf pdflib perforce perl php pic png postgres postgresql ppds pppd python qt qt3 qt4 quicktime readline reflection ruby sametime scanner sdl session slang spell spl sql ssl subversion svg svga tcltk tcpd tetex theora truetype truetype-fonts type1-fonts udev unicode userland_GNU v4l v4l2 vcd vhosts video_cards_nvidia vlm win32codecs wmf x86 xanim xinerama xml xml2 xmms xorg xprint xscreensaver xv xvid xvmc zlib"
Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS
|
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
mrsteven Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/gallery/Funny_Figure/kotz.gif)
Joined: 04 Jul 2003 Posts: 1939
|
Posted: Sat Oct 07, 2006 5:52 pm Post subject: |
|
|
Jo, das USE-Flag kdeenablefinal kann sehr viel RAM brauchen. Entweder du schaltest es ab, oder du richtest dir ein Swapfile ein:
Code: | dd if=/dev/zero of=/var/swapfile bs=1024 count=409600 #ca 400MB
chmod 600 /var/swapfile
mkswap /var/swapfile
swapon /var/swapfile |
Alternativ kannst du auch eine Swap-Partition erstellen, das erfordert aber ggf. eine Neupartitionierung... ![Wink :wink:](images/smiles/icon_wink.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
moe Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 28 Mar 2003 Posts: 1289 Location: Potsdam / Germany
|
Posted: Sat Oct 07, 2006 6:04 pm Post subject: |
|
|
Er hast doch eine swap-Partition..
Ja in den CFlags kannst du aus -O2 -Os machen, das einzige was nicht verändert werden darf, ist die Prozessorarchitektur. kdeenablefinal würde ich wirklich in deinem Fall nicht benutzen, mein Standrechner hat 1GB und fängt damit auch beim Kompilieren an zu swappen..
Gruss Maurice _________________ Signaturen sind doof. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Carlo Developer
![Developer Developer](/images/ranks/rank-dev.gif)
![](images/avatars/20991155413e41b8130c9ee.png)
Joined: 12 Aug 2002 Posts: 3356
|
Posted: Sat Oct 07, 2006 6:09 pm Post subject: Re: gcc-4.1.1 braucht mehr als 700MB Haupspeicher |
|
|
bookwood wrote: | - Kann ich dem gcc sagen "nimm nicht mehr als 200MB"?
|
Mit 200 MB wirst du KDE nicht bauen können. Und nimm bei dem System bloß kdeenablefinal raus.
bookwood wrote: | - Kann ich über emerge, nur für kmail, dem gcc sagen nimm "-Os"?
|
Nimm besser -O2 für's ganze System. _________________ Please make sure that you have searched for an answer to a question after reading all the relevant docs. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
bookwood Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/15628169645304bba7669f.png)
Joined: 06 Oct 2005 Posts: 128 Location: Dortmund
|
Posted: Sat Oct 07, 2006 6:32 pm Post subject: |
|
|
Danke Kollegen.
Das kdeenablefinal Flag hatte ich vor Ewigkeiten aktiviert als ich mit unsermake experimentierte und hatte es dann aus den Augen verloren. Ich habe gerade nochmal danach gesucht und gelesen das dieses Flag unteranderem diesen grossen Speicherverbrauch verursacht. Ich werde es jetzt deaktivieren und nochmal einen "emerge -NDu world" laufen lassen. Das Ergebniss werde ich dann hier Posten. Wenn das auch nicht hilft, baue ich das System mit -O2 neu. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Anarcho Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/1030393113423afb9086043.jpg)
Joined: 06 Jun 2004 Posts: 2970 Location: Germany
|
Posted: Sat Oct 07, 2006 7:06 pm Post subject: |
|
|
Eventuell kann man noch RAM während des compilierens sparen wenn du -pipe rausnimmst. _________________ ...it's only Rock'n'Roll, but I like it! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Fauli l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/9342013042b57afb44a90.png)
Joined: 24 Apr 2004 Posts: 760 Location: Moers, Germany
|
Posted: Sat Oct 07, 2006 7:46 pm Post subject: |
|
|
Also hier lässt sich kdepim 3.5.4 mit gcc 4.1.1, CFLAGS="-march=athlon-xp -O3 -fomit-frame-pointer -pipe" und USE="kdeenablefinal" auf 512 MB RAM plus 518 MB Swap ohne Probleme kompilieren.
Du kannst kdeenablefinal ruhig herausnehmen, das Kompilier-Ergebnis ist dasselbe. Es beschleunigt lediglich das Kompilieren, aber natürlich nur dann, wenn dein Rechner nicht deshalb anfängt zu swappen.
Bei kdeenablefinal werden die Quellcode-Dateien eines Unterprojektes aneinandergehängt und dann nur diese eine große Datei kompiliert. Das geht schneller, weil die Header-Dateien in diesem Fall nur einmal gelesen und verarbeitet werden müssen. Aber der GCC braucht zum Kompilieren der riesigen Dateien auch sehr viel Arbeitsspeicher. _________________ Do your part to beautify the web! Turn off link underlining! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
bookwood Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/15628169645304bba7669f.png)
Joined: 06 Oct 2005 Posts: 128 Location: Dortmund
|
Posted: Fri Oct 13, 2006 8:52 am Post subject: |
|
|
Es war das Useflag kdeenablefinal. Nachdem ich es entfernt hatte lief alles sauber durch - auch kmail. kdeenablefinal sollte man also nur mit mehr als einem GB Hauptspeicher verwenden. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
schachti Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/17240378884464519a52d60.jpg)
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Fri Oct 13, 2006 10:13 am Post subject: |
|
|
Naja, 1 GB braucht man nicht, ich habe KDE komplett mit 768 MB kompiliert, ohne daß mein Rechner wild am swappen war. _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
energyman76b Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/1100932856497255fef223c.png)
Joined: 26 Mar 2003 Posts: 2048 Location: Germany
|
Posted: Fri Oct 13, 2006 4:59 pm Post subject: |
|
|
naja, hast du eienn amd64 braucht kmail an der einen kritischen Stelle (es sind eigentlich sogar zwei) etwas über 800mb nur für den einen gcc-Prozess.
Was wirklich hilft ist MAKEOPTS="-j1".
Auf einer single-core Maschiene ist jeder höhere Wert sowieso unsinn. Die CPU ist so oder so IMMER ausgelastet.
Wenn man das Kompilieren beschleunigen will, sollte man PORTAGE_NICENESS auf 19 setzen. Klingt komisch, ist aber so. Der Compilierprozess kommt dann zwar nicht so oft dran, aber die Zeit die er hat ist länger - und nicht dauernd den cache und pipelines flushen zu müssen und mal eine 'zeitlang ungestört' zu sein, hilft viel. _________________ Study finds stunning lack of racial, gender, and economic diversity among middle-class white males
I identify as a dirty penismensch. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
mrsteven Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/gallery/Funny_Figure/kotz.gif)
Joined: 04 Jul 2003 Posts: 1939
|
Posted: Fri Oct 13, 2006 10:09 pm Post subject: |
|
|
energyman76b wrote: | Wenn man das Kompilieren beschleunigen will, sollte man PORTAGE_NICENESS auf 19 setzen. Klingt komisch, ist aber so. Der Compilierprozess kommt dann zwar nicht so oft dran, aber die Zeit die er hat ist länger - und nicht dauernd den cache und pipelines flushen zu müssen und mal eine 'zeitlang ungestört' zu sein, hilft viel. |
Na ja, mein Buch über Kernel 2.6 sagt aber etwas anderes: Wenn ein Prozess einen hohen nice-Wert hat, dann wird er sowohl seltener gerechnet und er bekommt zudem noch kürzere Zeitscheiben... Es wäre mir neu, wenn die Kernelentwickler das geändert hätten...
Kann es sein, dass du das mit der Unterscheidung zwischen I/O-lastigen und CPU-lastigen Prozessen verwechselst? Ein Prozess, der sich längere Zeit nicht schlafen legt (wie der Compiler), erhält vom Kernel eine kleine Zeitstrafe und wird im Zweifelsfall gegenüber einem Prozess benachteiligt, der gerade frisch erwacht ist... ![Wink :wink:](images/smiles/icon_wink.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
energyman76b Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/1100932856497255fef223c.png)
Joined: 26 Mar 2003 Posts: 2048 Location: Germany
|
Posted: Fri Oct 13, 2006 10:24 pm Post subject: |
|
|
Hi,
nöh, also das letzte, was ich gelesen hatte war, daß Prozesse mit einer hohen niceness zwar seltener drankommen, aber dafür die timeslices länger werden. Also im Endeffekt sich alles ausgleicht.
hmhm
was ist nun richtig? *kratz* _________________ Study finds stunning lack of racial, gender, and economic diversity among middle-class white males
I identify as a dirty penismensch. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
bookwood Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/15628169645304bba7669f.png)
Joined: 06 Oct 2005 Posts: 128 Location: Dortmund
|
Posted: Sat Oct 14, 2006 2:47 am Post subject: |
|
|
Ich sprach die ganze Zeit von einem einzelnen GCC Prozess. Bei gesetztem kdeenablefinal wuchs der Speicher auf über 700 MB an und das Kompilieren lief bei mir 2 Tage - bis ich es mit STRG-C abbrach weil ich mit dem Laptop arbeiten musste. Bei ein AMD K8 den ich testweise, mit einer Crossdev Umgebung über distcc zur Hilfe nahm, war der Speicherverbrauch ebenso verherend (über 700MB). Nach dem Entfernen des kdeenablefinal Useflags lief er, wie schon gesagt, ohne Probleme durch - um 23:00 gestartet - morgens um 6:00 war alles fertig - ohne distcc und ccache - nur auf dem Laptop. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
energyman76b Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/1100932856497255fef223c.png)
Joined: 26 Mar 2003 Posts: 2048 Location: Germany
|
Posted: Sat Oct 14, 2006 9:35 am Post subject: |
|
|
naja, bei mir läuft kdepim mit kdeenablefinal in 1h8min durch.
Im Durchschnitt... _________________ Study finds stunning lack of racial, gender, and economic diversity among middle-class white males
I identify as a dirty penismensch. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
mrsteven Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/gallery/Funny_Figure/kotz.gif)
Joined: 04 Jul 2003 Posts: 1939
|
Posted: Sat Oct 14, 2006 12:03 pm Post subject: |
|
|
energyman76b wrote: | Hi,
nöh, also das letzte, was ich gelesen hatte war, daß Prozesse mit einer hohen niceness zwar seltener drankommen, aber dafür die timeslices länger werden. Also im Endeffekt sich alles ausgleicht.
hmhm
was ist nun richtig? *kratz* |
Deine Quelle? Ich habe das aus dem Linux-Kernel-Handbuch von Robert Love. Wenn sich da seit Kernel 2.6.10 nicht so viel geändert hat, sollte das schon stimmen.
kdeenablefinal hat auf meinem System mit 512 MB RAM übrigens keine großartige Geschwindigkeitssteigerung zur Folge, wahrscheinlich weil das System oft swappen muss. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
energyman76b Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/1100932856497255fef223c.png)
Joined: 26 Mar 2003 Posts: 2048 Location: Germany
|
Posted: Sat Oct 14, 2006 1:21 pm Post subject: |
|
|
öhm, Quelle ist gut
war in irgendeiner mail auf gentoo-user. Von einem der gentoo-devs, glaub ich *kratz*
hm,
- batch scheduling. A significant proportion of computing-intensive tasks
benefit from batch-scheduling, where timeslices are long and processes
are roundrobin scheduled. The new scheduler does such batch-scheduling
of the lowest priority tasks - so nice +19 jobs will get
'batch-scheduled' automatically. With this scheduler, nice +19 jobs are
in essence SCHED_IDLE, from an interactiveness point of view.
in /usr/src/linux/Documentation/sched-design.txt
EDIT:
was ich damit sagen will: ich habe wohl einiges falsch verstanden (unter anderem den gentoo-dev) und du hast sicher recht, aber +19 sollte trotzdem helfen. ![Wink ;)](images/smiles/icon_wink.gif) _________________ Study finds stunning lack of racial, gender, and economic diversity among middle-class white males
I identify as a dirty penismensch. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
oscarwild l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/51196920041ddb21c1b91f.jpg)
Joined: 15 Jul 2003 Posts: 857 Location: Memmingen, Germany, Old Europe, Earth
|
Posted: Mon Oct 16, 2006 9:33 am Post subject: |
|
|
energyman76b wrote: | Was wirklich hilft ist MAKEOPTS="-j1".
Auf einer single-core Maschiene ist jeder höhere Wert sowieso unsinn. Die CPU ist so oder so IMMER ausgelastet. |
Stimmt nach meiner Erfahrung nicht ganz, die Auslastung liegt mit zwei gcc-Prozessen noch etwas höher, vermutlich weil da ja auch eine ganze Menge Dateioperationen dabei sind. Und während der eine gcc noch auf einen Lese/Schreib-Vorgang wartet, kann der andere compilieren (zumindest erkläre ich mir das so). Bei deutlich mehr Prozessen als Anzahl Cores + 1 bremst man den Rechner aber eher wieder aus. _________________ http://blog.selbsthilfenetzwerk-cannabis-medizin.de |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|