TIP Speeding up portage with tmpfs

Uit Gentoo Linux Wiki

Ga naar: navigatie, zoeken
Dit artikel is onderdeel van de Tips & Trucs serie.
Terminals / Shells Network X Window System Portage System Filesystems Kernel Other

Inhoud

[bewerken] Inleiding

Het compileren van broncode kan lang duren. Na enige aanpassingen kon ik Gentoo-Portage:x11-base/xorg-x11 (-minimal!) in ongeveer 15 minuten compileren op een 1800+ AMD cpu.

[bewerken] Hoe is dit mogelijk?

Met tmpfs gekoppeld aan /var/tmp/portage gebeurt het compileren volledig in RAM ipv de harde schijf, wat waarschijnlijk het traagste gedeelte van de pc is. Dit behoedt je harde schijf ook van fragmentatie waardoor je ook een sneller systeem krijgt en een langere levensduur van de harde schijf.

[bewerken] Benodigdheden/Voorwaarden

Je hebt minstens 512MB RAM nodig voor een Desktop Omgeving als KDE of GNOME. Sommige grote paketten zoals Firefox hebben zelfs meer geheugen nodig.

Wees er ook zeker van dat tmpfs ingeschakeld is in de kernel. Zie TIP Kernel Configuration voor meer info over het configureren van de kernel.

[bewerken] Hoeveel geheugen zal er gebruikt worden?

300 MB gekoppeld is niet voldoende voor:

450 MB gekoppeld is niet voldoende voor:

500 MB gekoppeld is voldoende voor:

850 MB is voldoende voor:

Het is mogelijk om KDE te bouwen met 350 MB.

Bij grote toepassingen kan het aantal inodes ook een probleem vormen. Eén inode = één bestand en broncode bevat een hoop kleine bestanden. Voor grote bestanden moet je dus het aantal inodes vergroten.

[bewerken] Set-up

Voer dit uit als root:

Code: mounting tmpfs

voor 50% RAM:

mount -t tmpfs tmpfs /var/tmp/portage

voor 850 MB RAM en één millioen inodes:

mount -t tmpfs tmpfs -o size=850M,nr_inodes=1M /var/tmp/portage


Controleer of het gekoppeld is

df -h | grep tmpfs

Je kan ook tmpfs koppelen door dit toe te voegen aan /etc/fstab :

none                    /var/tmp/portage   tmpfs  size=1000M,nr_inodes=1M         0 0

en koppel met :

mount -a

Indien je een grote swap partitie hebt kan je ook meer RAM koppelen. Ik heb 5GB swap, 1GB tmpfs gekoppeld aan /var/tmp/portage en 3GB aan /tmp. Tmpfs swapping is zéér snel.

[bewerken] Testen

Emerge iets!

# emerge xorg-x11

Gebruik genlop om te controleren of het sneller is.

Code: Example (from my 1400 centrino celeron)
emerge genlop -n
genlop -t xorg-x11
* x11-base/xorg-x11

Wed Apr  6 17:33:07 2005 >>> x11-base/xorg-x11-6.8.2-r1
  merge time: 7 minutes and 9 seconds.

[bewerken] Miniscript

Een klein script om tmpfs te koppelen. Ga naar een binair pad $PATH zoals /usr/local/bin, en creëer temerge met je $EDITOR.

File: temerge
#!/bin/bash
MEMSIZE=850M
mounted=false
 
. /sbin/functions.sh
 
mounttmpfs() {
     mount -t tmpfs tmpfs -o size=$MEMSIZE /var/tmp/portage
     mounted="true"
}

compile() {
     einfo "emerging ${*}"
          emerge ${*}
}

unmount() {
     ebegin "unmounting tmpfs"
          umount -f /var/tmp/portage
     eend $?
}

ebegin "Mounting $MEMSIZE of memory to /var/tmp/portage"
if [ -z "$(mount | grep /var/tmp/portage)" ]
then
     mounttmpfs
else
     eerror "tmpfs already mounted!"
     exit 0
fi
eend $?

compile ${*}
 
if [ -n "$mounted" ]
then
     unmount
fi

chmod u+x temerge en gebruik temerge ipv emerge om te emergen, gebruik emerge om te fetchen en pretenden.

Bemerkingen of complimenten? Gelieve de Overleg sectie te gebruiken.

--Inbreed 17:31, 1 Jul 2005 (GMT)
--Carlito Translator

Afkomstig van de Nederlandstalige Gentoo Wiki, het vrije Gentoo handboek. "http://nl.gentoo-wiki.com/TIP_Speeding_up_portage_with_tmpfs"
Persoonlijke instellingen
Andere talen