View previous topic :: View next topic |
Author |
Message |
Luca89 Advocate
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Tue Dec 12, 2006 1:14 pm Post subject: [TIP] Compilare in RAM, unionfs-way -> [non funzionante] |
|
|
Come molti sapranno portage utilizza come directory temporanea per compilare i pacchetti /var/tmp/portage, montando questa directory in ram quindi, potrebbe essere molto utile perché si risparmia vita all'hard-disk e la compilazione avviene più velocemente. Montare staticamente /var/tmp/portage in ram però non è una buona soluzione perché per pacchetti troppo grossi lo spazio a disposizione potrebbe esaurirsi.
Sono nate quindi varie soluzioni tramite bashrc per montare la partizione in ram solo per alcuni pacchetti (es. portage-bashrc-ng con modulo tmpfs), recentemente però ho trovato una soluzione che mi soddisfa di più, in particolare si tratta di montare /var/tmp/portage come unione di due filesystem: uno temporaneo e uno reale, in modo da utilizzare la ram per i pacchetti più piccoli e l'hard-disk per quelli più grandi in maniera completamente trasparente. Ecco qui il mio tip:
Prima installiamo unionfs (al momento è ~x86, quindi dovrete smascherarlo probabilmente):
Adesso creiamo alcune directory che ci serviranno: Code: | mkdir /var/tmp/portage{,_hd,_tmpfs} |
Dopodiché inseriamo in /etc/fstab:
Code: | # /var/tmp/portage
tmp /var/tmp/portage_tmpfs tmpfs size=400M,nodev,nr_inodes=90000 0 0
/dev/vg/tmp /var/tmp/portage_hd xfs noatime,nodiratime 0 0
unionfs /var/tmp/portage unionfs dirs=/var/tmp/portage_tmpfs/=rw:/var/tmp/portage_hd/=rw 0 0 |
Io qui uso una partizione a parte per /var/tmp/portage_hd, ma non è indispensabile, l'importante è montare /var/tmp/portage_tmpfs in ram e poi /var/tmp/portage come unione. In questa maniera unionfs utilizzerà per i primi 400M la ram e poi passerà alla partizione dell'hard-disk. Un buon compromesso sia per i pacchetti piccoli (che vengono compilati completamente in RAM) e per quelli grandi (che vengono compilati nell'hard-disk).
EDIT:
Il tip non funziona, leggete il proseguiemnto nel thread per chiarimenti, speriamo che implementino questa feature nelle nuove versioni di unionfs. _________________ Running Fast!
Last edited by Luca89 on Wed Dec 27, 2006 12:40 pm; edited 1 time in total |
|
Back to top |
|
|
.:deadhead:. Advocate
Joined: 25 Nov 2003 Posts: 2963 Location: Milano, Italy
|
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Tue Dec 12, 2006 2:27 pm Post subject: |
|
|
Sarebbe carino se funzionasse ...
unionfs permette la scrittura in una sola directory, a prescindere da quante ne vengano definite come rw
Quindi seguendo il tuo esempio e provando a usare una tmpfs da 1 mb si avrà un bell disk full praticamente con ogni pacchetto visto che riempito il mega non prosegue a scrivere nella directory sul disco ... _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
Cazzantonio Bodhisattva
Joined: 20 Mar 2004 Posts: 4514 Location: Somewere around the world
|
Posted: Tue Dec 12, 2006 2:29 pm Post subject: |
|
|
cosa comporta di diverso rispetto a montare /var/tmp/portage in tmpfs e usare la swap quando la ram finisce? (comportamento normale di tmpfs) _________________ Any mans death diminishes me, because I am involved in Mankinde; and therefore never send to know for whom the bell tolls; It tolls for thee.
-John Donne |
|
Back to top |
|
|
Kernel78 Moderator
Joined: 24 Jun 2005 Posts: 3654
|
Posted: Tue Dec 12, 2006 2:37 pm Post subject: |
|
|
Cazzantonio wrote: | cosa comporta di diverso rispetto a montare /var/tmp/portage in tmpfs e usare la swap quando la ram finisce? (comportamento normale di tmpfs) |
tmpfs non usa la swap quando la ram finisce, tmpfs alloca in memoria una partizione di una certa dimensione e a lui non interessa che sia in ram o in swap ma solo che sia in memoria (fisica o virtuale non gli interessa) ma generalmente ram+swap < hd in quanto a capacità quindi se anche si montasse una partizione tmpfs di dimensione uguale a ram+swap rischi cmq un disk full (oltre a saturare tutta la memoria del sistema) mentre un qualsiasi hd anche se vecchiotto ha a disposizione diversi gb, lui sperava quindi di evitare che riempiendo tmpfs si bloccasse la compilazione andando a proseguire sul disco fisso. _________________ Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con Code: | grep -vE '(^[[:space:]]*($|(#|!|;|//)))' |
|
|
Back to top |
|
|
Luca89 Advocate
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Tue Dec 12, 2006 2:43 pm Post subject: |
|
|
Kernel78 wrote: | Sarebbe carino se funzionasse ...
unionfs permette la scrittura in una sola directory, a prescindere da quante ne vengano definite come rw
Quindi seguendo il tuo esempio e provando a usare una tmpfs da 1 mb si avrà un bell disk full praticamente con ogni pacchetto visto che riempito il mega non prosegue a scrivere nella directory sul disco ... |
oh
Sono stato un cretino, non ho provato a riempire i 400Mb, però come size totale dell'unione mi dava la somma dei Mb e nel man non mi pare che diceva questa cosa, bah, niente, peccato, sarebbe stata una buona cosa. _________________ Running Fast! |
|
Back to top |
|
|
Tiro l33t
Joined: 14 Feb 2003 Posts: 752 Location: italy
|
|
Back to top |
|
|
.:deadhead:. Advocate
Joined: 25 Nov 2003 Posts: 2963 Location: Milano, Italy
|
|
Back to top |
|
|
randomaze Bodhisattva
Joined: 21 Oct 2003 Posts: 9985
|
Posted: Wed Dec 27, 2006 10:16 am Post subject: |
|
|
Luca89 wrote: | bah, niente, peccato, sarebbe stata una buona cosa. |
Luca89, vuoi che sposto il thread nel forum di discussione?
Altrimenti suggerirei di scrivere nel topic qualcosa tipo "[NON FUNZIONA]" o qualcosa di simile _________________ Ciao da me! |
|
Back to top |
|
|
riverdragon Veteran
Joined: 14 Sep 2006 Posts: 1269 Location: Verona
|
Posted: Wed Dec 27, 2006 10:57 am Post subject: |
|
|
In definitiva, si monta /var/tmp/portage in tmpfs e quando emerge salta perché ha esaurito lo spazio (mi è successo ieri compilando wine) se ne modifica la dimensione? Impostare la dimensione alta ha qualche effetto quando portage non sta compilando? |
|
Back to top |
|
|
Luca89 Advocate
Joined: 27 Apr 2005 Posts: 2107 Location: Agrigento (Italy)
|
Posted: Wed Dec 27, 2006 12:40 pm Post subject: |
|
|
randomaze wrote: | Altrimenti suggerirei di scrivere nel topic qualcosa tipo "[NON FUNZIONA]" o qualcosa di simile |
Fatto _________________ Running Fast! |
|
Back to top |
|
|
|