Page 2 of 8
Posted: Mon May 23, 2005 9:34 am
by FonderiaDigitale
randomaze wrote:Spettacolare
Noto che tuttavia le dimensioni da specificare in PORTAGE_MEMSIZE sono infide... infatti a quanto pare un 512 non é sufficiente per xorg-x11 infatti dopo i primi tentativi andati bene mi sono esaltato é ho lanciato un:
Code: Select all
PORTAGE_MEMSIZE=512 emerge xorg-x11
ottenendo come risultato:
Code: Select all
gzip: stdout: No space left on device
...adesso riprovo con 700.
Potremmo fare una tabellina con le dimensioni consigliate per i vari pacchetti
Ricordo male oppure openoffice per compilare richiede circa 4/5Gb di spazio?
molto strano.. finita la ram dovrebbe passare alla swap. hai swap o swapfiles?
per la tabella si puo' fare anche un /etc/portage/package.mem e ficcare tutto li
Posted: Mon May 23, 2005 9:45 am
by gutter
randomaze wrote:
Ricordo male oppure openoffice per compilare richiede circa 4/5Gb di spazio?
Ricordi benissimo

Posted: Mon May 23, 2005 9:48 am
by randomaze
FonderiaDigitale wrote:molto strano.. finita la ram dovrebbe passare alla swap. hai swap o swapfiles?
per la tabella si puo' fare anche un /etc/portage/package.mem e ficcare tutto li
Code: Select all
$ free
total used free shared buffers cached
Mem: 774524 730744 43780 0 20 536092
-/+ buffers/cache: 194632 579892
Swap: 1502036 0 1502036
Sei sicuro che finita la dimensione del disco passa allo swap? Perché mi sa che la dimensione del disco é fissa, ovvero 700M, poi il passaggio allo swap avviene se necessario (ad esempio se creo 1G di tempfs sicuramente un tot viene gestita dallo swap, se invece lo creo di 400 viene swappata solo se le app corenti si prendono troppo).
(BTW adesso sta swappando)
Code: Select all
$ free
total used free shared buffers cached
Mem: 774524 771660 2864 0 0 453072
-/+ buffers/cache: 318588 455936
Swap: 1502036 227192 1274844
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hdc7 12849728 9905316 2944412 78% /
none 387260 0 387260 0% /dev/shm
/dev/hdc2 22351536 15786960 6564576 71% /mnt/WinXP
tmpfs 716800 626412 90388 88% /var/tmp/portage
EDIT: Anche 700 sono finiti e non é riuscito....
Code: Select all
ranlib: /var/tmp/portage/xorg-x11-6.8.2-r1/image//usr/lib/libXau.a: No space left on device
...
$ df
...
tmpfs 716800 716800 0 100% /var/tmp/portage
$ free
total used free shared buffers cached
Mem: 774524 760856 13668 0 0 459384
-/+ buffers/cache: 301472 473052
Swap: 1502036 316212 1185824
Posted: Mon May 23, 2005 9:51 am
by Cazzantonio
BELLISSIMO!
Grande Fonderia!!!
Un solo dubbio mi assale... quanto ramdisk dedicare alla compilazione?
non ho mai fatto statistiche su quanto spazio venga occupato...
inoltre, usare la use kdeenablefinal può essere problematico?

Posted: Mon May 23, 2005 9:53 am
by xchris
Code: Select all
root@lyra xchris # lsof|grep /var/tmp/portage
gconfd-2 7085 root 11u unix 0xc2f48d80 6326053 /var/tmp/portage/mozilla-1.7.8/temp/orbit-root/linc-1bad-0-5b5fb322da9b4
gconfd-2 7085 root 12wW REG 0,13 737 6326057 /var/tmp/portage/mozilla-1.7.8/temp/gconfd-root/lock/0t1116837445ut895646u0p7085r1428852984k3220905676 (deleted)
tieni conto che era un emere -Du world
ciao

Posted: Mon May 23, 2005 9:57 am
by Cazzantonio
Un particolare...
io ho
PORTAGE_TMPDIR=/var/portage_tmp
devo decommentare questa riga in make.conf per usare il ramdisk?
Posted: Mon May 23, 2005 10:07 am
by FonderiaDigitale
randomaze wrote:
Sei sicuro che finita la dimensione del disco passa allo swap? Perché mi sa che la dimensione del disco é fissa, ovvero 700M, poi il passaggio allo swap avviene se necessario (ad esempio se creo 1G di tempfs sicuramente un tot viene gestita dallo swap, se invece lo creo di 400 viene swappata solo se le app corenti si prendono troppo).
non mi sono spiegato: non c'e modo di montare, ad es., 400MB e forzare 200mb in ram e 200 in swap,
solo se la memoria fisica si esaurisce (ovvero: memoria fisica disponibile < memoria mancante al disco tmpfs) il sistema passa allo swap.
L'unica maniera decente (o quasi..) di usare un fs piu grosso della ram e swappare il resto, preservando la priorita' di allocazione della ram per X etc, e' di montare il disco con un nice + alto degli altri processi.. anche se non e' un modo efficacissimo per farlo.
Ricordate che in ogni caso, e questo lo sottolineo 10 volte,
tmpfs non togliera' mai memoria ai processi interattivi o allo scheduler di sistema[/b]. inoltre, la memoria se non viene occupata viene liberata per altri usi, ed e' anchequesto il motivo per cui smonto il disco alla fine del merge, ottenendo anche l'effetto secondario di ripulire in un colpo di spugna tutti i file temporanei rimanenti (tipo autoclean

)
A temporary file system uses memory to simulate a traditional disk partition. Normal file system writes are scheduled to be written to disk along with access control information, but the files actually reside in memory only.
A good candidate for a tmpfs is a partition that will have many small files that will be accessed often, e.g. /tmp. This will considerably speed up their access time. Tmpfs files and directories are NOT saved when the system shuts down.
Tmpfs is recommended for systems that do a lot of compiling and loading of programs and have large amounts of memory (> 16 MB) and swap space.
Disadvantages are that it reduces the amount of swap space available for other process and that it is volatile.
Posted: Mon May 23, 2005 10:08 am
by FonderiaDigitale
Cazzantonio wrote:Un particolare...
io ho
PORTAGE_TMPDIR=/var/portage_tmp
devo decommentare questa riga in make.conf per usare il ramdisk?
no funziona con qualsiasi locazione, purche sia montabile.
Posted: Mon May 23, 2005 10:11 am
by FonderiaDigitale
FonderiaDigitale wrote:randomaze wrote:
Sei sicuro che finita la dimensione del disco passa allo swap? Perché mi sa che la dimensione del disco é fissa, ovvero 700M, poi il passaggio allo swap avviene se necessario (ad esempio se creo 1G di tempfs sicuramente un tot viene gestita dallo swap, se invece lo creo di 400 viene swappata solo se le app corenti si prendono troppo).
non mi sono spiegato: non c'e modo di montare, ad es., 400MB e forzare 200mb in ram e 200 in swap,
solo se la memoria fisica si esaurisce (ovvero: memoria fisica disponibile < memoria mancante al disco tmpfs) il sistema passa allo swap.
L'unica maniera decente (o quasi..) di usare un fs piu grosso della ram e swappare il resto, preservando la priorita' di allocazione della ram per X etc, e' di montare il disco con un nice + alto degli altri processi.. anche se non e' un modo efficacissimo per farlo.
Ricordate che in ogni caso, e questo lo sottolineo 10 volte,
tmpfs non togliera' mai memoria ai processi interattivi o allo scheduler di sistema. inoltre, la memoria se non viene occupata viene liberata per altri usi, ed e' anchequesto il motivo per cui smonto il disco alla fine del merge, ottenendo anche l'effetto secondario di ripulire in un colpo di spugna tutti i file temporanei rimanenti (tipo autoclean

)
A temporary file system uses memory to simulate a traditional disk partition. Normal file system writes are scheduled to be written to disk along with access control information, but the files actually reside in memory only.
A good candidate for a tmpfs is a partition that will have many small files that will be accessed often, e.g. /tmp. This will considerably speed up their access time. Tmpfs files and directories are NOT saved when the system shuts down.
Tmpfs is recommended for systems that do a lot of compiling and loading of programs and have large amounts of memory (> 16 MB) and swap space.
Disadvantages are that it reduces the amount of swap space available for other process and that it is volatile.
Posted: Mon May 23, 2005 11:30 am
by randomaze
FonderiaDigitale wrote:non mi sono spiegato: non c'e modo di montare, ad es., 400MB e forzare 200mb in ram e 200 in swap, solo se la memoria fisica si esaurisce (ovvero: memoria fisica disponibile < memoria mancante al disco tmpfs) il sistema passa allo swap.
L'unica maniera decente (o quasi..) di usare un fs piu grosso della ram e swappare il resto, preservando la priorita' di allocazione della ram per X etc, e' di montare il disco con un nice + alto degli altri processi.. anche se non e' un modo efficacissimo per farlo.
Si, mi sa che mi sono espresso male io...
Dato che, dal mio punto di vista con un disco allocato da 512M l'errore "no space left.." significava banalmente che dovevo creare un file più grosso la tua risposta:
Code: Select all
molto strano.. finita la ram dovrebbe passare alla swap. hai swap o swapfiles?
mi ha lasciato un'attimo perplesso perché pensavo intendessi "finiti i 512M dovrebbe andare sullo swap" e la cosa mi sembrava un poco strana.
Posted: Mon May 23, 2005 11:41 am
by FonderiaDigitale
ok

ora cmq e' piu' chiaro?
Posted: Mon May 23, 2005 2:49 pm
by XstefanoX
Scusate una domanda, ma non sarebbe più semplice aggiungere ad fstab una linea del tipo:
così si eviterebbe di montare/smontare la partizione ad ogni emerge? Tanto, in questo modo, anche se non emergo niente, mi pare di aver capito che di ram non ne consumo, o sbaglio?
Posted: Mon May 23, 2005 4:30 pm
by Xet
XstefanoX wrote:Scusate una domanda, ma non sarebbe più semplice aggiungere ad fstab una linea del tipo:
così si eviterebbe di montare/smontare la partizione ad ogni emerge? Tanto, in questo modo, anche se non emergo niente, mi pare di aver capito che di ram non ne consumo, o sbaglio?
beh mi pare eccessivo...tieni conto che è un fs temporaneo...
e poi se monti 800m in ram per non farci nulla ti giochi quegli 800 mega di ram che restano inutilizzati...
se invece li monti per usarli allora ottieni dei risultati
sempre che io abbia capito tutto perfettamente

Posted: Mon May 23, 2005 4:47 pm
by XstefanoX
Non credo che la ram venga allocata tutta quando monti il tmpfs. Questa è la situazione iniziale:
Code: Select all
total used free shared buffers cached
Mem: 386652 251232 135420 0 37292 132168
-/+ buffers/cache: 81772 304880
Swap: 497972 0 497972
Poi monto un tmpfs così:
Code: Select all
mount -t tmpfs none /var/tmp/portage -o size=1g
E la ram utilizzata praticamente non cambia:
Code: Select all
total used free shared buffers cached
Mem: 386652 251848 134804 0 37528 132336
-/+ buffers/cache: 81984 304668
Swap: 497972 0 497972
Questo è l'output di df -h:
Code: Select all
Filesystem Dimens. Usati Disp. Uso% Montato su
none 1,0G 0 1,0G 0% /var/tmp/portage
Quindi, perchè non montare sempre al boot il tmpfs?
Posted: Mon May 23, 2005 5:24 pm
by federico
Com'e' che tutti sui pacchetti piccoli hanno guadagnato manciate di secondi e io su nano ci perdo ?
senza:
real 0m41.751s
user 0m29.496s
sys 0m8.500s
con:
real 0m42.553s
user 0m29.194s
sys 0m8.298s
Posted: Mon May 23, 2005 5:54 pm
by jp10hp
beh per una volta voglio fare il criticone, ecco i mie risultati prima con e poi senza lo script per la compilazione in ram!
Code: Select all
Mon May 23 19:42:56 2005 >>> media-video/vlc-0.8.1-r1
merge time: 2 minutes and 53 seconds.
Mon May 23 19:47:11 2005 >>> media-video/vlc-0.8.1-r1
merge time: 2 minutes and 51 seconds.
ovviamente nelle stesse condizioni...
devo però precisare che io uso questa features di portage che forse genera di suo il boost che dovrebbe essere associato alla compilazione in ram:
Code: Select all
# PORTAGE_TMPFS is a location where portage may create temporary files.
# If specified, portage will use this directory whenever possible
# for all rapid operations such as lockfiles and transient data.
# It is _highly_ recommended that this be a tmpfs or ramdisk. Do not
# set this to anything that does not give a significant performance
# enhancement and proper FS compliance for locks and read/write.
# /dev/shm is a glibc mandated tmpfs, and should be a reasonable
# setting for all linux kernel+glibc based systems.
PORTAGE_TMPFS="/dev/shm"
cmq non so, aspetto illuminazioni!:D
Posted: Mon May 23, 2005 6:01 pm
by .:chrome:.
jp10hp wrote:Code: Select all
# PORTAGE_TMPFS is a location where portage may create temporary files.
# If specified, portage will use this directory whenever possible
# for all rapid operations such as lockfiles and transient data.
# It is _highly_ recommended that this be a tmpfs or ramdisk. Do not
# set this to anything that does not give a significant performance
# enhancement and proper FS compliance for locks and read/write.
# /dev/shm is a glibc mandated tmpfs, and should be a reasonable
# setting for all linux kernel+glibc based systems.
PORTAGE_TMPFS="/dev/shm"
infatti... ci pensavo proprio oggi.
sarebbe interessante usare /dev/shm, ma in tutta onestà io so che esiste, ma non so bene a cosa serve, quindi il dubbio era sulla sua reale utilizzabilità.
se non saltano fuori critiche, jp10hp mi ha dato indirettamente la risposta
Posted: Mon May 23, 2005 6:55 pm
by Cazzantonio
k.gothmog wrote:sarebbe interessante usare /dev/shm, ma in tutta onestà io so che esiste, ma non so bene a cosa serve, quindi il dubbio era sulla sua reale utilizzabilità.
beh... in ogni caso è un ramdisk...
quindi che problemi potrebbero esserci? (se non finire la ram sul più bello della compilazione

)
Forse il fatto che non viene smontato (e quindi ripulito) dopo che la compilazione è finita?

Posted: Mon May 23, 2005 10:36 pm
by FonderiaDigitale
XstefanoX wrote:Scusate una domanda, ma non sarebbe più semplice aggiungere ad fstab una linea del tipo:
così si eviterebbe di montare/smontare la partizione ad ogni emerge? Tanto, in questo modo, anche se non emergo niente, mi pare di aver capito che di ram non ne consumo, o sbaglio?
il motivo primario per cui smonto e rimonto il fs a ogni emerge e' che in questo modo pulisco tutto il disco in un colpo solo, facendo lavorare anche meno il disco.
Posted: Mon May 23, 2005 10:39 pm
by FonderiaDigitale
jp10hp wrote:beh per una volta voglio fare il criticone, ecco i mie risultati prima con e poi senza lo script per la compilazione in ram!
Code: Select all
Mon May 23 19:42:56 2005 >>> media-video/vlc-0.8.1-r1
merge time: 2 minutes and 53 seconds.
Mon May 23 19:47:11 2005 >>> media-video/vlc-0.8.1-r1
merge time: 2 minutes and 51 seconds.
stai usando ccache?
Code: Select all
# PORTAGE_TMPFS is a location where portage may create temporary files.
# If specified, portage will use this directory whenever possible
# for all rapid operations such as lockfiles and transient data.
# It is _highly_ recommended that this be a tmpfs or ramdisk. Do not
# set this to anything that does not give a significant performance
# enhancement and proper FS compliance for locks and read/write.
# /dev/shm is a glibc mandated tmpfs, and should be a reasonable
# setting for all linux kernel+glibc based systems.
PORTAGE_TMPFS="/dev/shm"
cmq non so, aspetto illuminazioni!:D
non e' la stessa cosa. il mio approccio compila TUTTO in memoria, non solo i file temporanei. si tratta di due approcci diversi: a ognuno usare quello che preferisce.
un'altra cosa: se hai un urgente bisogno di memoria, col mio sistema puoi disabilitare in toto, temporaneamnete, l'uso di memoria fisica (es. stai lavorando su un progetto java e quella memoria ti serve per lo scopo). l'altro appoccio e' una-tantum.
Posted: Mon May 23, 2005 10:48 pm
by FonderiaDigitale
federico wrote:Com'e' che tutti sui pacchetti piccoli hanno guadagnato manciate di secondi e io su nano ci perdo ?
senza:
real 0m41.751s
user 0m29.496s
sys 0m8.500s
con:
real 0m42.553s
user 0m29.194s
sys 0m8.298s
avevi la ram occupata per altri processi quando hai fatto la prova?
Posted: Mon May 23, 2005 11:12 pm
by _Hadakaar
Scusate l'ignoranza, ma da dove si inseriscono nel kernel il tmpfs? non l'ho trovato in File Systems.
Posted: Tue May 24, 2005 1:23 am
by federico
FonderiaDigitale wrote:federico wrote:Com'e' che tutti sui pacchetti piccoli hanno guadagnato manciate di secondi e io su nano ci perdo ?
senza:
real 0m41.751s
user 0m29.496s
sys 0m8.500s
con:
real 0m42.553s
user 0m29.194s
sys 0m8.298s
avevi la ram occupata per altri processi quando hai fatto la prova?
Stavo utilizzando il pc penso normalmente, controllo meglio domani con + precisione forse e' meglio fare una riprova.
Posted: Tue May 24, 2005 6:26 am
by gutter
_Hadakaar wrote:Scusate l'ignoranza, ma da dove si inseriscono nel kernel il tmpfs? non l'ho trovato in File Systems.
Code: Select all
File systems
Pseudo filesystems
[V] Virtual memory file system support (former shm fs) (TMPFS)
Posted: Tue May 24, 2005 9:53 am
by _Hadakaar
fatto e funziona, grazie
Purtroppo però è andato in errore un pacchetto (gstreamer-ffmpeg), e non mi smonta più il tmpfs.
Code: Select all
umount2: Dispositivo o risorsa occupata
umount: tmpfs: non trovato
umount: /var/tmp/portage: Illegal seek
umount2: Dispositivo o risorsa occupata
umount: /var/tmp/portage: device occupato
ho anche provato
ma l'outpit è vuoto
tra l'altro Firefox non compila....errore moooooolto grave
Code: Select all
i686-pc-linux-gnu-gcc -o Linux2.6_x86_glibc_PTH_OPT.OBJ/pcertdb.o -c -O2 -fPIC -DLINUX1_2 -Di386 -D_XOPEN_SOURCE -DLINUX2_1 -ansi -pipe -DLINUX -Dlinux -D_POSIX_SOURCE -D_BSD_SOURCE -DHAVE_STRERROR -DXP_UNIX -DSHLIB_SUFFIX=\"so\" -DSHLIB_PREFIX=\"lib\" -DSOFTOKEN_LIB_NAME=\"libsoftokn3.so\" -UDEBUG -DNDEBUG -D_REENTRANT -I/var/tmp/portage/mozilla-firefox-1.0.4/work/mozilla/dist/include -I../../../../dist/public/nss -I../../../../dist/private/nss -I../../../../dist/include -I/var/tmp/portage/mozilla-firefox-1.0.4/work/mozilla/dist/include/nspr -I/var/tmp/portage/mozilla-firefox-1.0.4/work/mozilla/dist/include/dbm -I../../../../dist/public/dbm pcertdb.c
{standard input}: Assembler messages:
{standard input}:1808: Error: bad register name `%ea8'
gmake[4]: *** [Linux2.6_x86_glibc_PTH_OPT.OBJ/pcertdb.o] Error 1
gmake[4]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.0.4/work/mozilla/security/nss/lib/softoken'
gmake[3]: *** [libs] Error 2
gmake[3]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.0.4/work/mozilla/security/nss/lib'
gmake[2]: *** [libs] Error 2
gmake[2]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.0.4/work/mozilla/security/manager'
gmake[1]: *** [tier_40] Error 2
gmake[1]: Leaving directory `/var/tmp/portage/mozilla-firefox-1.0.4/work/mozilla'
make: *** [default] Error 2