Optimizar el rendimiento con Zram 24

zram Optimizar el rendimiento con Zram

En el siguiente post comentamos como optimizar el rendimiento del sistema con Zram. Cabe destacar que esta publicación forma parte de una serie posts para optimizar el rendimiento de nuestra memoria RAM y de nuestro sistema.

El conjunto de post que hablan sobre nuestra memoria RAM son los siguientes:

  1. Liberar memoria cache de nuestra RAM.
  2. Limitar el uso de nuestra memoria Swap y limpiarla en el caso que se active.
  3. Usar la RAM más eficientemente con ZRAM.
  4. Acelerar el inicio de nuestras aplicaciones con Preload.
  5. Acelerar el inicio de nuestras aplicaciones con Prelink.

¿Qué es Zram?

Zram o compcache es un módulo experimental del Kernel de linux que nos evita utilizar la paginación en disco para de esta forma poder optimizar el rendimiento de nuestro sistema. Esta característica es principalmente importante en equipos de gama baja. En equipos de gama alta la influencia es nula ya que prácticamente no se  necesita la paginación en disco.

Se han escuchado rumores que Ubuntu 13.04 podría incorporar de serie esta característica. La verdad es que me preocupa poco si lo hace. Ubuntu es una distro que cada día que pasa me interesa menos. Por otra parte también se dice que en la versión del Kernel 3.8 Zram sera excluido. En fin… Veremos que acaba pasando tanto con Ubuntu como con Zram.

Funcionamiento de Zram

Para ver el funcionamiento de Zram supongamos que disponemos de nuestra memoria RAM. La podemos representar del siguiente modo:

1 Optimizar el rendimiento con Zram

Lo que hace Zram es crear uno o más bloques dentro de nuestra memoria RAM. Por lo tanto lo que hará ZRAM dentro de nuestra memoria RAM lo podemos representar del siguiente modo:

2 Optimizar el rendimiento con Zram

El bloque que acabamos de representar gráficamente será una porción física de nuestra RAM y funcionará como si fuera una memoria de intercambio Swap, pero en vez de estar ubicada en nuestro disco duro estará ubicada dentro de nuestra memoria RAM.

Ahora imaginemos que empezamos a trabajar y a ejecutar aplicaciones con nuestro ordenador. A medida que se va llenando nuestra memoria RAM, se dará la situación que representamos en la siguiente representación:

3 Optimizar el rendimiento con Zram

Como podemos ver la imagen la memoria RAM está casi llena. Una vez pase esto se activará la memoria swap pero en vez de paginar el contenido de nuestra RAM en el disco duro lo hará en el bloque que hemos creado dentro de nuestra ram. Por lo tanto la situación que se dará una vez se active ZRam se puede representar de la siguiente forma:

4 Optimizar el rendimiento con Zram

Si observamos el gráfico vemos que se ha liberado gran cantidad de contenido en nuestra memoria RAM, mientras que en nuestra partición Zram ha aparecido una pequeña porción de color Negro. Esta pequeña porción de color negro posee la totalidad de información que había dentro del gran bloque de color verde que representaba las imágenes de procesos almacenados en nuestra RAM. ¿Como esta pequeña parte puede almacenar la totalidad de contenido que había en la parte verde?

Simplemente porqué antes de almacenarse la información en el bloque que hemos creado, esta se comprime. Una vez comprimida se almacena en el bloque de memoria creado por Zram. En el momento que se necesite recuperar la información que tenemos paginada, esta  se descomprimirá y se trasladará de nuevo a nuestra memoria RAM.

Por lo tanto, como podéis ver, estamos paginando la información que paginaríamos en el disco duro en nuestra memoria RAM. Como la velocidad de respuesta de la memoria RAM es mucho más elevada que la de un disco duro aumentaremos el rendimiento de nuestro sistema. Además en el caso de disponer de un disco SSD estaremos alargando la vida útil de este dispositivo.

Por lo tanto con ZRAM tendremos un bloque adicional de memoria en nuestra RAM que será usada para paginar. En el caso de que se agote nuestro bloque de memoria entonces actuará la paginación en el disco tradicional.

Instalar Zram en cualquier distribución basada en Debian

Como podremos ver mas adelante es muy fácil instalar Zram en Ubuntu pero muchos usuarios desconocen como realizarlo en otras distribuciones. El método descrito funciona en la totalidad de distribuciones basadas en Debian e imagino que también funcionará en otro tipo de distribuciones.

Como hemos explicado en el inicio Zram es un módulo del kernel que seguramente la totalidad de usuarios tienen disponible en estos momentos. Por lo tanto para habilitar Zram no tenemos que instalar ningún paquete. Solamente tenemos que activar este módulo. Para hacerlo procedemos de la siguiente forma:

Abrimos una terminal y nos loguearemos como root:

su
Nota: Si el comando su no funciona en vuestra distro probad sudo su. La totalidad de pasos para habilitar Zram se tienen que realizar siendo root.

Seguidamente ejecutaremos el comando:

swapon -s

Esta comando servirá para comprobar el estado actual de nuestra memoria swap.

antes de zram1 300x193 Optimizar el rendimiento con Zram

Como se puede ver en la captura de pantalla en estos momentos dispongo de una partición de intercambio de aproximadamente 1 Gb.

Seguidamente comprobaremos que el kernel que tenemos instalado en nuestro ordenador contiene el módulo Zram. Para ellos tecleamos el siguiente código en la terminal:

 grep -i zram /boot/config-`uname -r`

Si la respuesta que devuelve la terminal es parecida a la siguiente:

 CONFIG_ZRAM=m # CONFIG_ZRAM_DEBUG is not set

Quiere decir que disponemos del módulo pero no está activado.

Para activar el módulo de Zram tenemos que teclear el siguiente comando en la terminal:

modprobe zram
Nota: En el caso de querer crear más de un bloque en nuestra memoria RAM tenemos que sustituir el comando anterior por modprobe zram num_devices=4. Este comando a modo de ejemplo creará cuadro bloques. Los bloques se denominaran /dev/zram0, /dev/zram1, /dev/zram2 y  /dev/zram3.

Seguidamente tenemos que crear el dispositivo de Zram. Lo crearemos de 100Mb. Para ello en la terminal tecleamos el siguiente comando:

echo $((100*1024*1024)) > /sys/block/zram0/disksize
Nota: 100x1024x1024 indica el tamaño de nuestro dispositivo. 100 * 1024 * 1024 = 104857600 bytes que es igual a 100MB. Si quisiéramos crear un bloque de 200 Mb solo tendríamos que cambiar el 100 por un 200.
Nota: En el caso de crear 4 bloques deberíamos aplicar el comando que acabamos de ver 3 veces mas. Con zram1, zram2 y zram3

Una vez creado el dipositivo ahora lo vamos a montar. Por lo tanto para montarlo tecleamos:

 mkswap /dev/zram0
Nota: En el caso de crear 4 bloques deberíamos aplicar el comando que acabamos de ver 3 veces mas. Con zram1, zram2 y zram3

Al dispositivo que acabamos de montar le tenemos que dar una prioridad de actuación. Se la tenemos que dar ya que si no se la damos en el momento que nuestra memoria RAM este llena puede que la paginación se haga en nuestro disco duro en vez de en el bloque Zram que acabamos de crear. Para darle la prioridad tecleamos el siguiente comando en la terminal:

 swapon -p 50 /dev/zram0
Nota: Como podéis ver en el comando estamos dando una prioridad de 50 a nuestro bloque de memoria. En principio esta prioridad es más que suficiente. Si os fijáis en la captura de pantalla anterior veréis que la prioridad de paginación en disco es -1. Por lo tanto la prioridad 50 siempre se impondrá  sobre una prioridad -1.
Nota: En el caso de crear 4 bloques deberíamos aplicar el comando que acabamos de ver 3 veces mas. Con zram1, zram2 y zram3

En estos momentos Zram esta plenamente activo. Para comprobar que funciona adecuadamente simplemente tenéis que teclear el siguiente comando:

swapon -s

Al teclear el comando obtendréis un resultado parecido al siguiente:

despues ZRAM1 300x193 Optimizar el rendimiento con Zram

En la captura podemos ver que seguimos teniendo la partición Swap de 1Gb. Pero además adicionalmente aparece el dispositivo de 100 Mb que acabamos con una prioridad 50. Por lo tanto tarea concluida.

Ahora solo nos falta testear si nuestro sistema funciona adecuadamente y mejor que antes de crear el módulo. Una vez realizadas los comprobaciones y estar satisfechos con el rendimiento podemos hacer que la partición Zram se monte automáticamente cada vez que arrancamos nuestro sistema. En el caso de querer hacerlo abrimos la terminal y tecleamos:

sudo gedit /etc/rc.local

Una vez se habrá el editor de texto copiamos el siguiente contenido:

modprobe zram &&
echo $((100*1024*1024)) > /sys/block/zram0/disksize &&
mkswap /dev/zram0 &&
swapon -p 50 /dev/zram0 &&
exit 0
Nota: En el caso de observar problemas los pasos realizados son fácilmente reversibles.

Instalar Zram en versiones de Ubuntu iguales o superiores a la 12.04

Si queremos instalar Zram en Ubuntu 12.04 o una versión posterior todo es un poco más fácil, pero también tendremos menos flexibilidad ya que no podremos controlar el número de bloques de Swap, ni el tamaño ni la prioridad de actuación.

Para instalar Zram primero tenemos que abrir una terminal y teclear el siguiente comando:

sudo apt-get install zram-config

Una vez instalado comprobaremos que zram se ha instalado correctamente y está en funcionamiento. Para ello en la misma terminal teclearemos el siguiente comando:

 cat /proc/swaps

En el caso de que Zram esté funcionando de forma adecuada el comando os mostrará un resultado parecido al siguiente:

 Filename     Type         Size       Used     Priority
/dev/sda5     partition    1298428    0        -1
/dev/zram0    partition    804520     0        5

En principio Zram ya esta funcionando. En mi caso la paritción /dev/sda5  es la partición Swap de mi ordenador. La partición /dev/zram0 será la partición que habrá creado Zram.

Instalar Zram en Ubuntu para versiones inferiores a la 12.04

Si queremos instalar Zram en este caso el proceso también se pude decir que es fácil.

Para instalar Zram primero tenemos que abrir una terminal y teclear el siguiente contenido para agregar el repositorio que necesitamos:

sudo add-apt-repository ppa:shnatsel/zram && sudo apt-get update

Después actualizamos los repositorios tecleando el siguiente comando:

 sudo apt-get update

Finalmente ya podemos instalar Zram mediante el siguiente comando:

 sudo apt-get install zramswap-enabler

En principio Zram ya esta funcionando. Si nos queremos asegurar podemos reiniciar el ordenador o teclear el siguiente comando:

 sudo start zramswap

Si queremos ver el estado de nuestras particiones swap podemos teclear el siguiente comando:

 sudo swapon -s

En el caso que no estemos satisfechos con el rendimiento de Zram podemos desinstalarlo con el siguiente comando:

sudo apt-get remove --purge zramswap-enabler

Y esto es todo. Espero haber contribuido a que algunos de vosotros puedan obtener un mejor rendimiento en vuestro PC.

Fuentes:

http://forums.debian.net/viewtopic.php?t=77627

Nota: Este post va dedicado a Alberto Aru por liar un pollo monumental al instalar el paquete deb de Zram de Ubuntu en Debian. Estuvimos cerca de una hora para poder desinstalar Zram. Un saludo Alberto :)

Post Relacionados

  • proceso liberar swap2 300x193 150x150 Optimizar el rendimiento con Zram6 abril, 2013 Optimizar el uso de la memoria Swap (22)
    Optimizar el uso de la memoria swap forma parte de una serie de post para optimizar el uso de memoria RAM en nuestro sistema operativo y de esta forma poder obtener el máximo rendimiento […]
  • liberar Cache 300x151 150x150 Optimizar el rendimiento con Zram30 marzo, 2013 Liberar memoria cache de la RAM (17)
    Liberar memoria cache de nuestra RAM es el primer post de una serie para optimizar el uso de la RAM en nuestros ordenadores y de esta forma poder sacar siempre el máximo rendimiento a […]
  • mejor servidor dns 300x180 150x150 Optimizar el rendimiento con Zram25 mayo, 2013 Elegir el mejor servidor DNS (7)
    En grandes cantidades de post o en conversaciones entre geeks se suelen recomendar algún que otro servidor DNS para incrementar la velocidad de navegación en Internet. Pero hay que tener […]

24 Comentarios en “Optimizar el rendimiento con Zram

  1. Responder Urbano abr 13,2013 23:03

    Muy bueno el informe, lo único que no me agrada es que desde dentro mismo de la comunidad linux se critique tanto a Ubuntu, creo que criticando tanto a la distro mas popular le hacen mal a linux. Es solo mi opinion, yo aunque hace desde Ubuntu 8.04 recien ahora estoy usandolo mas amenudo y la verdad siendo un usuario experto en Windows pero totalmente nobato en linux me siento muy a gusto con Ubuntu y no pienso cambiar.

    • Responder Joan Carles abr 14,2013 10:28

      Hola Buenas. Gracias por escribir. Creo que decir que Ubuntu es una distribución que no me interesa no es atacar a Ubuntu ni hace daño a Linux. Cada uno es libre de usar la distro que crea conveniente. Si la gente quiere usar Ubuntu adelante. Yo mismo supongo que tarde o temprano la volveré a instalar para ver como va. Ayer mismo probé la 13.04 y la verdad que hay ciertos aspectos de unity que no me gustan nada. Pero quizás a otros les guste. Paso de entrar en discusiones de porqué no me gusta o porqué sí me gusta. Estás discusiones no sirven para nada. Para valorar algo hay que instalarlo y probarlo durante unos meses. Los gustos son subjetivos.
      Que tengas un buen fin de semana.

  2. Responder jonasgamma jun 26,2013 17:06

    Hola, muy buen articulo, estaba buscando algo asi.

    Tengo una duda, cuando abro el fichero sudo gedit /etc/rc.local (mousepad en mi caso) sale lo siguiente:

    #!/bin/sh -e
    #
    # rc.local
    #
    # This script is executed at the end of each multiuser runlevel.
    # Make sure that the script will “exit 0″ on success or any other
    # value on error.
    #
    # In order to enable or disable this script just change the execution
    # bits.
    #
    # By default this script does nothing.

    exit 0

    Exactamente donde debo copiar los comandos que recomiendas, uso Debian Testing.

    Gracias.

    • Responder jonasgamma jun 26,2013 17:14

      También añado a la duda anterior si al ejecutarse automáticamente zram al inicio el swap ya no se habilita, o hay que deshabilitarlo, o simplemente no se hace nada mas.

      • Responder Joan Carles jun 26,2013 22:23

        Hola Jonas. Si tu equipo es un equipo que tiene recursos suficientes y tienes una cantidad aceptable de RAM es casi mejor que no utilices Zram. Dudo que tengas problemas si lo utilizas pero ten en cuenta que Zram aun esta en experimental.

        Si quieres hacer pruebas. Te copio como lo tengo en uno de mis ordenadores.

        #!/bin/sh -e
        #
        # rc.local
        #
        # This script is executed at the end of each multiuser runlevel.
        # Make sure that the script will “exit 0″ on success or any other
        # value on error.
        #
        # In order to enable or disable this script just change the execution
        # bits.
        #
        # By default this script does nothing.

        modprobe zram &&
        echo $((100*1024*1024)) > /sys/block/zram0/disksize &&
        mkswap /dev/zram0 &&
        swapon -p 50 /dev/zram0 &&
        exit 0

        El hecho de usar Zram no implica que elimines la memoria swap. Las 2 coexisten pero usa primero la compresión Zram ya que cuando has activado Zram le has dado prioridad de actuación respecto la memoria Swap.

        • Responder jonasgamma jun 27,2013 4:07

          Gracias Joan Carles, así lo había dejado y funciono. La verdad no era para mi máquina principal, en esa tengo buenos recursos. Quería probar esto y lo de preload en una pc vieja con apenas 512 de RAM y si se nota mejoría, o eso creo.

          Gracias, seguire mas tu blog y tu pagina de Google+.

          Saludos

          • Responder Joan Carles jun 27,2013 22:39

            Quizás en tu caso lo mejor que podrías hacer es instalar una distro ligera. Lubuntu, Slitaz, Crunchbang, Puppy Linux, etc. Un saludo

  3. Responder Martín nov 2,2013 4:17

    Hola! La verdad era un poco escéptico sobre el resultado real de zram, pero debo decir que se nota mucho la diferencia, y te lo digo desde la máquina que reciclé: un celeron p4 2,80 ghz con 512 ram y geforce 4 mx 440 (los drivers de NVidia son otro cantar).

    ¡Te agradezco mucho el post tan detallado y útil!

    • Responder Joan Carles nov 2,2013 9:51

      gracias por tu comentario. Con este tipo de post es importante que los usuarios den feedback para poder ver si los resultados son buenos.

  4. Responder mama21mama dic 3,2013 3:36

    Activado en Zeuza Server Con 1gb de ram y un procesador e2160 de Intel.

    Espero que haga milagros :)

    Gracias y saludos.

  5. Responder mama21mama dic 3,2013 19:55

    lo que noto en log /var/log/syslog

    Dec 3 14:41:47 zeuza kernel: [1080798.614990] Write-error on swap-device (253:0:204792)

    Dec 3 14:48:43 zeuza kernel: [1081215.412726] Write-error on swap-device (253:0:204792)

    Dec 3 14:49:10 zeuza kernel: [1081241.764793] Write-error on swap-device (253:0:204792)

    Todavía no encuentro respuestas a esto.

    Alguien con alguna pista?

    • Responder Joan Carles dic 3,2013 22:41

      No tengo tan claro que el problema sea de zram. Puedes probar sin zram para ver que pasa.

      Si falla zram por lo que visto por aquí pone frases del tipo:
      kernel: zram: Error allocating memory for compressed page: 320529, size=4126
      kernel: Write-error on swap-device (254:1:2564232)

      Mira si encuentras más información en el log del kernel:
      /var/log/kern.log

      Por cierto en google hay información respecto el error que te da. Si esperas milagros pienso que zram no te los proporcionará. Pero por probar nada pierdes.

  6. Responder enae abr 9,2014 19:52

    Hola, solo un comentario:

    Actualmente zram esta en los repositorios de ubuntu,

    sudo apt-get install zram-config

    modificalo por favor. ahorrará problemas a los ubunteros.

    Saludos

    • Responder Joan Carles abr 9,2014 22:27

      Este fin de semana será actualizado.

      Me sabrías decir a partir de que versión se añade el paquete de zram en la paqueteria de serie?

      Lo pregunto porqué añadir los respositorios seguirá siendo necesario en algunas ramas de ubuntu, xubuntu como por ejemplo la 12.04

      Saludos y gracias por avisar.

  7. Responder enae abr 10,2014 14:39

    Hola, en la 12.04, linux mint 13 maya y derivados de ubuntu 12.04, ya está. Supongo que en anteriores serán necesarios los repositorios

    saludos

  8. Responder Señor Paquito jun 5,2014 9:59

    Saludos Joan Carles y concurrencia.

    Estoy valorando utilizar zram pero no tengo del todo claro si me compensa. Mi equipo es el siguiente:

    Placa: GIGABYTE Z68AP-D3
    Pocesador: Intel Core i5 2500 (4 núcleos a 3.300GHz )
    RAM: 8GB DDR3 1.600MHz
    Gráfica: Nvidia GeForce GTS450 1GB
    1 Disco SSD (sólo sistema y home aunque las carpetas de archivos son enlaces simbólicos que apuntan al HDD) SAMSUNG 840 PRO
    1 Disco HDD de 500gb que aloja los archivos y una partición de 2GB para swap
    SO: Ubuntu 14.04

    Pues bien, valoro el uso de zram por el SSD, básicamente, para evitar que el sistema pierda rendimiento cuando la swap está ocupada, cosa que sucede con cierta frecuencia (aunque está configurada para que se use cuando la ram está al 90% de uso) porque uso máquinas en VirtualBox a diario (soy el friki aficionado de la familia y las cosas mejor probarlas antes).

    Resumiendo, con un equipo así me compensaría usar zram?

    Gracias de antemano.

    • Responder Joan Carles jun 6,2014 7:47

      Paco

      Diría que en tu caso con Zram no vas a percibir ninguna mejora de rendimiento porqué, aparte de tener un equipo muy actual, tu equipo tiene un SSD.

      Pero claro. Si eres curioso como dices pruebalo. No tienes nada a perder

      Saludos

      • Responder Señor Paquito jun 6,2014 8:29

        Muchas Gracias Joan.

        Lo cierto es que googleando un poco encontré referencias a otra cosa que viene a llamarse Zswap. No la conocía hasta ayer, la verdad, y me llamó bastante la atención.

        Parece ser que ya está presente en el kernel y ni siquiera hay que instalarlo, solo hay que activarlo. El autor del artículo habla de zswap como algo mejor que zram.

        ¿Qué opinas sobre esto?

        • Responder Joan Carles jun 8,2014 22:22

          Hola muy buenas

          Como bien dices Zswap es algo diferente a Zram. Mucha gente lo confunde y piensa que es lo mismo. Los 2 módulos actualmente vienen integrados en el kernel de Linux y solamente los tienes que activar para usarlos.

          No se si Zram es mejor o peor que Zswap. Es cuestión de probarlo. Cuando tenga tiempo escribiré al respecto. Intentaré escribir algo al respecto.

  9. Responder Señor Paquito jun 9,2014 0:06

    Gracias Manuel.

    Lo cierto es que tengo curiosidad al respecto e igual pruebo Zswap porque, por lo que he leído, debería de beneficiar a cualquier equipo con independencia de que el hardware sea más o menos actual. No sé si lo he entendido bien, pero creo haber entendido que comprime todo lo que vaya a RAM y no sólo lo que haya que paginar, por lo vendría a ser como si aumentásemos la RAM. Leo, además, que envía a RAM algún proceso del sistema que, en teoría, agilizaría el desempeño por la velocidad de la RAM.

    En cualquier caso, de probarlo os contaría lo que vea.

    Saludos y gracias.

    • Responder Joan Carles jun 9,2014 7:54

      Todo el proceso de comprimir y descomprimir consume CPU de tu ordenador y tarda un tiempo en ejecutarse. Yo no tengo tan claro que mejore el rendimiento en todos los ordenadores, Puede que en algunos casos si. Pruebalo y lo podrás ver.

      Si Zswap fuera milagroso vendría activado por defecto. Y lo que digo para Zswap se puede aplicar a Zram y otros similares. Pueden ayudar pero no son milagrosos. Más que instalar estas cosas lo más efectivo es instalar una distro ligera. Tengo un Xubuntu 12.04 con todas estas cosas instaladas y va mucho mas lento que Fedora 20 con Mate en el mismo ordenador. Fedora no tiene nada de esto instalado. Pienso que si instalas Zswap en tu ordenador no notarás nada.

      Ayer intenté activar Zswap con las instrucciones del link que pasaste y no se me activa funciona. Lo probé en Fedora 20 y con el Kernel 3.14.5. En fin tendré que investigar más ya que el link que pasaste a mi no me funciona.

      • Responder Señor Paquito jun 11,2014 14:09

        Saludos de nuevo.

        En el blog donde había leído sobre zswap “http://blog.xenodesystems.com/2014/05/haz-tu-linux-mas-rapido-con-zswap.html” también había dejado una consulta. Hoy volví por allí para ver si me habían respondido y resultó que no, pero si que había un comentario de otro lector (Raul) en el que decía que zswap ralentiza los equipos y facilitaba, además, un enlace sobre el tema. Por si le interesa a alguien, os lo dejo: “http://www.hecticgeek.com/2013/11/zswap-responsiveness-ubuntu/”

        Saludos

  10. Responder Señor Paquito jun 9,2014 9:48

    Te agradezco mucho tu respuesta.

    Estoy de acuerdo, lo mejor para el rendimiento es una distro ligera, de eso no hay duda. De hecho, tengo un portátil limitado en el que he estado probando distros, empezando por Ubuntu, Kubuntu… al final acabé en Lubuntu y con Lubuntu me quedé porque el rendimiento es muy superior.

    Respecto del rendimiento, no sé, hay que reconocer que desde que compré el SSD es como si en PC tuviera turbo, realmente no necesito que el rendimiento mejore, obviamente, para lo que yo hago voy sobrado y los aspectos en que me gustara mejorar el equipo (el rendimiento gráfico, por ejemplo) se solucionan con hardware. Básicamente, me interesaban soluciones como zram o zswap para evitar en lo posible usar la SWAP, porque está en el HDD y se supone que ralentizaría el equipo cuando está en uso. También es verdad que para las pocas veces que entra en funcionamiento bien podría estar en el SSD, pero en todos los sitios que consulté recomendaban ponerla en el HDD.

    Respecto al enlace, lo cierto es que no lo había probado. No sé, igual un día de estos lo pruebo antes en una maquina virtual y vamos viendo el rendimiento que tiene. Te contaré lo que vea.

    De nuevo, gracias.

Deja un Comentario

  

  

  


*