# ¿estoy usando la ram cuando compilo?{solucionado}

## papu

Opciones kernel:

https://i.minus.com/iboND9AuFutiyj.png

https://i.minus.com/ibeb1b3RNoAhJW.png

df -hT:

```

S. fitxers     Tipus     Mida En ús Lliure  %Ús Muntat a

rootfs         rootfs     46G  8,7G    35G  20% /

/dev/root      ext4       46G  8,7G    35G  20% /

tmpfs          tmpfs     7,8G  572K   7,8G   1% /run

udev           devtmpfs   10M     0    10M   0% /dev

shm            tmpfs     7,8G  140K   7,8G   1% /dev/shm

cgroup_root    tmpfs      10M     0    10M   0% /sys/fs/cgroup

/dev/sdb1      ext2      122M  8,7M   107M   8% /boot

/dev/sdb3      ext4       23G  916M    21G   5% /home

/dev/sdc1      fuseblk   299G  168G   131G  57% /mnt/share

/dev/sde1      fuseblk   299G   57G   242G  20% /media/Iomega HDD

/dev/sdd3      fuseblk   639G  396G   244G  62% /media/B5B943D154DCAC1A
```

actualmente ya estoy usando para compilar la ram(tmpfs) en lugar del hd ¿no?

usando udev no hace falta montar en fstab el tmpfs ¿cierto?

¿porqué shm tiene el mismo tamaño que tmpfs?  es decir estan ocupando 7,8G cada uno, o solo uno de ellos a la vez, o realmente son la misma cosa para el sistema? 

desconozco la diferencia entre shm y tmpfs ahora que lo pienso ¿cuál es?

saludos, adéu.

----------

## cohone

Como has puesto la salida del df, deduzco que lo que quieres es usar la ram para los archivos temporales que se forman al emerger, si es así me da a mi que no lo estás haciendo..

tendrías que montar el /var/tmp/portage como tmpfs en /etc/fstab

aquí te lo explica bien: http://en.gentoo-wiki.com/wiki/Portage_TMPDIR_on_tmpfs

----------

## papu

 *cohone wrote:*   

> Como has puesto la salida del df, deduzco que lo que quieres es usar la ram para los archivos temporales que se forman al emerger, si es así me da a mi que no lo estás haciendo..
> 
> tendrías que montar el /var/tmp/portage como tmpfs en /etc/fstab
> 
> aquí te lo explica bien: http://en.gentoo-wiki.com/wiki/Portage_TMPDIR_on_tmpfs

 

si eso quiero hacer, ¿es que no lo esta haciendo ahora? no entiendo porque no, entonces estos tmfps que son?:

```
tmpfs          tmpfs     7,8G  572K   7,8G   1% /run

shm            tmpfs     7,8G  140K   7,8G   1% /dev/shm 
```

, de todas formas en esa pagina pone que no hay ninguna mejora apreciable...más allà de ser un modo de evitar el desgaste de hd he comprobado que a nivel de compilación no hay mejora.

```
genlop -t clementine                                                                             

 * media-sound/clementine                                                                                            

                                                                                                                     

     Thu Oct 25 14:59:18 2012 >>> media-sound/clementine-1.1.0           antes                                       

       merge time: 8 minutes and 3 seconds.                                                                          

                                                                                                                     

     Sat Oct 27 21:40:07 2012 >>> media-sound/clementine-1.1.0           ahora usando tmpfs en fstab

       merge time: 8 minutes and 9 seconds.
```

----------

## cohone

Pues si te fijas, verás que los directorios que montas como tmpfs con /run y /dev/shm, no se si emerge detecta esos tmpfs y los usa, prueba a compilar y mientras compila haz un df, a ver si sube su uso.

Yo en mi configuración, emerge usa el directorio /var/tmp/portage para descomprimir el source y compilarlo desde allí, su ese directorio está montado sobre un disco, pues usa un disco y si está montado sobre ram, pues usa la ram...

Si merece o no la pena... pues no lo he comprobado nunca, doy por hecho de que sí ya que la ram es más rápida, pero el tenerla ocupada tal vez penalice la compilación por otro lado...

el /run se pone en tmpfs, por lo visto, porque había algún problema con algunas aplicaciones al inicio, que podrían no tener /var/run montado y lo solucionaron de esta forma

y el /dev/shm, si no me equivoco sirve para compartir datos entre aplicaciones,por ej. para compartir memoria ram con la tarjeta de video y que ésta pueda utilizarla directamente (sin tener que copiar los datos a su memoria interna)

----------

## gringo

Una aclaración : si ya estás usando -pipe realmente gcc ya usará ram para sus operaciones internas. Esto implica obviamente una mayor consumo de ram pero la compilación será mas rápida.

Además, portage tb. tira de /dev/shm internamente para algunas operaciones ( siempre que esté disponible).

Lo que tu quieres es que cuando se desempaquete un tarball que lo haga en ram y que se compile desde ahi. Para eso sigue las instrucciones que te han puesto arriba.

Dudo mucho que notes alguna diferencia sustancial en el tiempo de compilación, a menos que tengas un disco duro del pleistoceno. La única ventaja que le veo es que usando tmpfs evitas la fragmentación del sistema de archivos.

saluetes

----------

## Arctic

 *gringo wrote:*   

> 
> 
> Dudo mucho que notes alguna diferencia sustancial en el tiempo de compilación, a menos que tengas un disco duro del pleistoceno. La única ventaja que le veo es que usando tmpfs evitas la fragmentación del sistema de archivos.
> 
> saluetes

 

Un SSD alcanza ya unas velocidades muy elevadas,  lo que ocurre es que dado que estos tienen un ciclo limitado de escrituras , no es mala idea tirar de Ram. Aunque como he comentado anteriormente tampoco debemos de obsesionarnos con este tipo de cosas, tambien los procesadores tienen un limite de horas de uso y no conozco a nadie que lo sobrepasase .

Un saludo

----------

## cameta

La verdad para cuando se estropea algo teniendo en cuenta la velocidad a la que progresa el hardware ya está más que obsoleto.

----------

## gringo

que los ssd tienen menos vida que un disco común de toda la vida es cierto, pero es lo que decis vosotros, se suele jubilar el hardware antes de que se llegue a su final de vida util.

a modo de ejemplo : yo tengo en mi portátil un ssd intel 320 y según el intel ssd toolbox este, si sigo con mi ritmo de uso habitual tengo disco para unos 13/14 años.

saluetes

----------

## papu

 *cohone wrote:*   

> Pues si te fijas, verás que los directorios que montas como tmpfs con /run y /dev/shm, no se si emerge detecta esos tmpfs y los usa, prueba a compilar y mientras compila haz un df, a ver si sube su uso.
> 
> Yo en mi configuración, emerge usa el directorio /var/tmp/portage para descomprimir el source y compilarlo desde allí, su ese directorio está montado sobre un disco, pues usa un disco y si está montado sobre ram, pues usa la ram...
> 
> Si merece o no la pena... pues no lo he comprobado nunca, doy por hecho de que sí ya que la ram es más rápida, pero el tenerla ocupada tal vez penalice la compilación por otro lado...
> ...

 

el df -hT practicamente no varia nada compilando, ¿el directorio  /run ese donde anda?  o es el /var/tmp/portage/xxx/xxxx/work.... ...no entiendo la dif entre tmpfs y shm y porque estan montados con identico espacio a la vez... a ver si a parte del foro encuentro algo por www que me saque de dudas.

 *gringo wrote:*   

> Una aclaración : si ya estás usando -pipe realmente gcc ya usará ram para sus operaciones internas. Esto implica obviamente una mayor consumo de ram pero la compilación será mas rápida.
> 
> Además, portage tb. tira de /dev/shm internamente para algunas operaciones ( siempre que esté disponible).
> 
> Lo que tu quieres es que cuando se desempaquete un tarball que lo haga en ram y que se compile desde ahi. Para eso sigue las instrucciones que te han puesto arriba.
> ...

 

si tengo configurado el -pipe

```
    CFLAGS="-march=native -O2 -pipe"

    CXXFLAGS="${CFLAGS}"

    CHOST="x86_64-pc-linux-gnu"

    MAKEOPS="-j5"

     

    LINGUAS="ca ca_ES"

     

    cpu="ssse3 sse3 sse4_1 sse4_2 avx smp"

    multimedia="-oss pulseaudio dvd vdpau alsa xvmc gstreamer openal v4l bluray cdda cddb"

    escriptori="-gtk -gnome qt4 kde qt3support"

    general="-hal -handbook dbus udev unicode sqlite bash-completion icu policykit zeroconf avahi lzma spell"

    xorg_kde="opengl X semantic-desktop opencl xv"

    disseny="truetype png jpeg svg lcms jpeg2k"

     

    USE="${cpu} ${multimedia} ${escriptori} ${general} ${xorg_kde} ${disseny}"

     

    INPUT_DEVICES="evdev"

     

    VIDEO_CARDS="radeon"

     

    ALSA_CARDS="hda-intel"

     

    FEATURES="ccache parallel-fetch nodoc candy"

    #PORTAGE_ELOG_CLASSES="error info"

    #PORTAGE_ELOG_SYSTEM="metalog"

    EMERGE_DEFAULT_OPTS="-v --keep-going --with-bdeps=y --autounmask-write=y"

     

    ACCEPT_LICENSE="*"

     

    ACCEPT_KEYWORDS="~amd64"

     

    GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/"

    SYNC="rsync://rsync4.fr.gentoo.org/gentoo-portage"

     

    #source /var/lib/layman/make.conf

```

Y pare ser que usa el /var/tmp/portage para compilar eso indica claremente que esta usanro la ram entonces, ¿no? sin tener que configurar el tmpfs en el /etc/fstab 

https://i.minus.com/ifDbHohQJQ8Y0.png

https://i.minus.com/ibxz95SRxq7djw.png

 *gringo wrote:*   

> que los ssd tienen menos vida que un disco común de toda la vida es cierto, pero es lo que decis vosotros, se suele jubilar el hardware antes de que se llegue a su final de vida util.
> 
> a modo de ejemplo : yo tengo en mi portátil un ssd intel 320 y según el intel ssd toolbox este, si sigo con mi ritmo de uso habitual tengo disco para unos 13/14 años.
> 
> saluetes

 

bueno el ssd lo uso en la partición de windows en la de linux uso uno raptor de menor espacio, ya quite de la firma el ssd  :Smile:   en ese caso si seria esencial mi pregunta, y más usando gento,  por el tema desgastes, que como decis supongo es más leyenda urbana que otra cosa pero supongo que si sera cierto que van desgastandose , aunque con tecnologias como TRIM etc pues no se yo si han que andar con tanto miramiento.

saludos, ad1

----------

## cohone

 *Quote:*   

> el df -hT practicamente no varia nada compilando, ¿el directorio  /run ese donde anda?  o es el /var/tmp/portage/xxx/xxxx/work.... ...no entiendo la dif entre tmpfs y shm y porque estan montados con identico espacio a la vez... a ver si a parte del foro encuentro algo por www que me saque de dudas.
> 
> 

 

A ver, que parece que esto se nos va de las manos, jeje

Cuando montas un sistema de ficheros de tipo tmpfs, lo que hace es simular en memoria ram una partición de un disco (no me sale cómo explicarlo de otra forma)

El directorio /run, está físicamente en la memoria ram, y coincide en tamaño con el shm, porque, si no le especificas un tamaño con la opción size, te va utilizar toda la memoria ram que tengas disponible en ese momento, que no se reserva, sino que va disminuyendo a medida que se hace un uso real (cuando copias un fichero a /run el tamaño libre disminuirá en ambos tmpfs, en el /run y en el /dev/shm)

La diferencia ente shm y tmpfs en /etc/fstab (el primer argumento) es meramente testimonial, es un argumento que en el caso de los tmpfs no tiene uso, salvo "dar un nombre", puedes poner lo que quieras (o eso creo), solo que como /run y /dev/shm son dos puntos de montajes 'conocidos' en linux, se les nombra así, no se porqué...

Conviene saber que todo lo que guardes en un tmpfs, desaparece cuando se desmonta la partición o reinicias el pc y es irrecuperable (lo comento por si acaso)

 *Quote:*   

> Y pare ser que usa el /var/tmp/portage para compilar eso indica claremente que esta usanro la ram entonces, ¿no? sin tener que configurar el tmpfs en el /etc/fstab

 

No, si no tienes un punto de montaje en fstab y no has montado a mano nada en ese directorio, te está usando el dispositivo donde tengas instalado el /, para saber si se uda tmpfs, en el comando df, aparecerá algo así:

```
temporal                         4,2G      0  4,2G   0% /var/tmp/portage
```

Saludos.

----------

## papu

entonces siempre se ha de montar el directorio tmpfs en uno que ya exista sino pues de poco sirve montar un tmfs  digo yo :O

el contenido de /dev/shm y  /run no es el mismo , entiendo ahora que son ambos dos tmpfs, supongo entonces que lo que no entiendo es la utilidad del directorio /run y   /dev/shm.  :Smile:  Mañana buscaré info por el google 

saludos, ad1

----------

## cohone

 *papu wrote:*   

> entonces siempre se ha de montar el directorio tmpfs en uno que ya exista sino pues de poco sirve montar un tmfs  digo yo :O
> 
> el contenido de /dev/shm y  /run no es el mismo , entiendo ahora que son ambos dos tmpfs, supongo entonces que lo que no entiendo es la utilidad del directorio /run y   /dev/shm.  Mañana buscaré info por el google 
> 
> saludos, ad1

 

Es que no se puede montar nada en un directorio que no exista, salvo filesystems especiales, como el swap (que verás que el punto de montaje es none)

El contenido no es el mismo, claro, pero el espacio libre (ram) sí lo comparten y el primero que lo use se lo queda.

La diferencia es que están montados en dos directorios diferentes.

El uso de esos directorios ya te lo comenté, uno se usa en aplicaciones de inicio, porque originalmente estaba en /var/run y este directorio podría no estar montado y por lo tanto no accesible en el inicio temprano del sistema, y como solución se usó un tmpfs, ya que la ram está disponible siempre.

y el /dev/shm es para compartir memoria con la tarjeta gráfica, o eso tengo entendido

Saludos

----------

## papu

 *cohone wrote:*   

>  *papu wrote:*   entonces siempre se ha de montar el directorio tmpfs en uno que ya exista sino pues de poco sirve montar un tmfs  digo yo :O
> 
> el contenido de /dev/shm y  /run no es el mismo , entiendo ahora que son ambos dos tmpfs, supongo entonces que lo que no entiendo es la utilidad del directorio /run y   /dev/shm.  Mañana buscaré info por el google 
> 
> saludos, ad1 
> ...

 

si lógicamente ha de montarse algo que existe pero como la ram siempre existe xD me referia a que ha de ser un directorio que el sistema use para algo y lo detecte , como e/tmp o en este caso en gentoo el /var/tmp/ que es el que tiene el por defecto para las compilaciones.  Si ya lei algo del /run que es para lo que dices y que lo cambiaron hace poco.

Hablando del none desconozco para que sirve voy a buscar info  :Smile:  esto de linux no se acaba nunca aprendes una cosa y te das cuenta desconoces cinco más, cada vez  jaja 

saludos, ad1

----------

## SS3

Hay varias formas, yo añado PORTAGE_TMPDIR="/dev/shm" en make.conf y listo.

----------

