viernes, 5 de junio de 2009

Acelerar compilacion de Emerge, se compila en ram, no en el HDD

Después de probar esto en un par de emerge estoy seguro de que funciona siempre y cuando tenga suficiente memoria RAM - 768M es suficiente o más, aunque bien puede ser el mínimo de 512 MB con un escritorio con un servidor X. Probado en tres máquinas con (768M, 1G, y 3G de memoria RAM). Al Emerger el servidor X tardaba 1,5 horas y ahora solo tarda unos 20 minutos en un athlon-xp, por ejemplo.

Portage usa / var / tmp / portage (por defecto) ya que es el directorio de trabajo, todo se construye allí antes de que se instale para /. Entonces, ¿por qué no pegan / var / tmp / portage en la memoria RAM? Es un directorio tmp después de todo, guarda todas las salidas E / S del cuello de botella ...

¿Interesado? Bueno, esto es lo que tienes que hacer ...
(Asumo que ya usaste, su para logearte como Root sino anteponer sudo para los siguientes comandos)

# nano /etc/fstab

añada la siguiente línea al final -

none /var/tmp/portage tmpfs nr_inodes=1M 0 0

antes de montarlo, puede que quiera limpiar su disco en / var / tmp / portage -

# rm -fdr /var/tmp/portage/*

montar su nuevo directorio tmp -

# mount /var/tmp/portage

intentar un emerge

# emerge freeciv

Ahora fue mas rapido!!

Nota:


1. No he tenido más de 130 M utilizado en un emerge, sin embargo, en una actualización (emerge-u world), sin embargo, no estoy seguro de los límites superiores del tamaño de este directorio en multiples emerge. Depende de la frecuencia portage / salida ha sido obtenida. Nadie sabe, y este comportamiento puede ser cambiado?

2. Si desea establecer un tamaño exacto de esta se puede cambiar la fecha de entrada en el fstab para -


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


No voy a ir por debajo de 256M para estar bien seguros. Vi esta variante en el foro de Jackass


Apendice:
1. la creación de un tmpfs parece predeterminado a 50% de su tamaño total de memoria RAM. No hay de qué preocuparse, ya que no utiliza mucho si no se llena con archivos. No estoy seguro exactamente lo que sucederá si se llena hasta un 80%

Sería útil saber cuál es el paquete más grande está en portage. (?) Cuando surgió la cantidad de espacio que utiliza al máximo, si añadimos, por ejemplo, 10% a la cifra que luego nos daría nuestro tamaño máximo aceptable para la tmpfs.

2. La mayoría del espacio está ocupado cuando surgen dist desempaqueta un archivo tar en / var / tmp / portage. Sólo parece desempaquetar un paquete a la vez y, a continuación, la elimina cuando haya terminado. Este comportamiento puede ser diferente depende de la configuración de MAKEOPTS en make.conf, no puede confirmar esto como lo he probado sólo con "-j2" (por defecto).

3. Hay una entrada en el wiki que me perdí que tiene un guión muy bueno que convierte a esta y cuando usted lo necesita

esta particion montada en ram puede ser llenada y dar errores al emerger paquetes enormes como el openoffice, ahi simplemente hay que desmontar el punto de montaje

# umount /var/tmp/portage

Fuente: Gentoo Forums

Ps: este truco fue traducido del ingles

Espero que les sirva

1 comentario:

malditonerd dijo...

También podrías usar CCaché, Distcc + pump y la memoria de video como swap. (O la combinación de las 3 cosas juntas mas tmp en la ram).

Particularmente, hoy en día lo que mejor resultado me ha dado es una buena granja distcc combinada con pump... Nada mas rápido.

Saludos!