Cosas sueltas

Mejorar rendimiento de una Raspberry PI 3 con un pendrive adicional

Raspberry Pi 3

La Raspberry Pi 3 es un minúsculo ordenador con el que se pueden hacer muchas cosas interesanets.

Aun a pesar de la limitada potencia de la Raspberry Pi 3, en muchos casos el cuello de botella no es la CPU, ni la GPU ni la RAM sino la velocidad del almacenamiento externo. El acceso a “disco”.

Las únicas opciones para conectar un disco a estas placas es pinchar una MicroSD, un Pendrive USB o un disco externo USB.

El “disco de arranque” de una de estas placas será habitualmente una tarjeta MicroSD. Las tarjetas MicroSD no son en absoluto adecuadas para este uso y flojean especialmente en velocidad de escritura.

Para sobrellevar ese problema veo 3 pasos a seguir:

  1. Utilizar la MicroSD más rápida que puedas conseguir
  2. Intentar reducir el volumen de escrituras en disco
  3. Intentar repartir las escrituras entre varios discos (el objeto de este artículo)

Utilizar la MicroSD más rápida que puedas conseguir

La diferencia de rendimiento entre los múltiples modelos de tarjetas MicroSD es abismal, como se puede ver análisis de rendimiento como este. Para disco donde estará el sistema operativo prestaría especial atención al rendimiento de escritura aleatoria.

De entre las que salen bien paradas ahí yo le conseguido bien de precio estas dos:

  • Samsung Evo+ 32GB
  • Sandisk Ultra 16GB

Una vez hemos conseguido una tarjeta decente, el siguiente paso sería:

Intentar reducir el volumen de escrituras en disco

Dependiendo de lo que estemos haciendo podemos intentar reducir la cantidad de cosas que se registran en los logs, afinar los ajustes de programas como servidores SQL, etc.

En mi caso lo único que he hecho es que /tmp esté en un ramdisk añadiendo esta linea a /etc/fstab:

tmpfs    /tmp       tmpfs    defaults    0 0

Dependiendo de nuestro uso podremos ser más agresivos. Por ejemplo dirigir los logs a un disco RAM eliminaría muchas pequeñas escrituras… pero lo logs desaparecerían al apagarse el equipo.

Intentar repartir las escrituras entre varios discos

Y por fin llegamos al pequeño truco que quería comentar.

En la imagen de arriba aparece un pequeño servidor doméstico con una Raspberry Pi 3. En ella tengo instalado nginx, php, PostgreSQL y alguna cosilla más.

Tras empezar a utilizarlo me encotré con que cada cierto tiempo las aplicaciones web dejaban de responder durante unos segundos.

Utilizando los comandos iostat e iotop pude ver que había bastante carga de escritura en disco especialmente provocada por PostgreSQL.

El único disco del sistema era la tarjeta MicroSD que servía para el sistema, las aplicaciones, los logs, la base de datos, etc.

La solución en mi caso fue muy sencilla y efectiva: además de la MicroSD dejé conectado un pendrive USB permantentemente e intenté dividir la carga de escritura entre los dos almacenamientos.

Para ello configuré PostgreSQL para llevar la carpeta con las bases de datos al pendrive, mientras que el sistema y el resto de las cosas permanecían en la MicroSD.

Simplemente con eso desaparecieron los problemas.

Un pequeño extra: copias de seguridad

Tener dos discos en el servidor me ha permitido programarlo para que cada noche haga:

  • backup de los datos en la MicroSD al Pendrive USB
  • backup de los datos en el Pendrive USB a la MicroSD

De esa manera en caso de que uno de los dos falle se podrá recuperar el sistema a partir de los datos en el otro.

Correo con dominio propio y página web por muy poco dinero

Hasta hace unos días esta página era un blog hecho con Wordpress, y estaba alojada en un servicio de hosting que aun siendo básico, mantenerlo suponía algo más de 70€ al año.

Mis requerimientos son muy modestos, tan solo correo con dominio propio y una pequeña web, así que he visto la forma de simplificar los requerimientos para reducir el coste.

El coste final: unos 12€ al año.

Necesidades de alojamiento

Mis necesidades para este dominio, abilleira.com, son las siguientes:

Incluiré también como requerimiento que el registrador soporte utilizar un segundo factor de autenticación además del usuario y la contraseña.

Coste habitual

Para tener estos servicios lo más habitual es tener que contratar dos cosas:

  • El registro de un nombre de dominio. Unos 6€ a 12€ dependiendo de la terminación.
  • El alojamiento para la web y el correo. Mínimo unos 30€ a 40€, habitualmente bastante más.

¿Se podría hacer con menos?

Muchas empresas incluyen con el registro de dominio un mini alojamiento, tan pequeño y simple que no es usable en la practica pero…

Si simplifico mi blog y rebusco un poco entre los proveedores… ¿podría tener correo con dominio propio y un pequeño blog contratando solo el registro del dominio?

Pues parece que sí.

Eso sí, esto solo es válido para una pequeña web para mantener presencia en Internet. Si tu web es importante asegurate de escoger un buen proveedor de alojamiento y de contratar la cantidad de recursos que vas a necesitar.

Simplificando: de web dinámica a web estática

Los alojamientos incluidos con el registro de dominio no suelen tener lo necesario para ejecutar una aplicación web como Wordpress.

En mi caso el primer paso fue convertir el blog que tenía hecho con Wordpress a un generador de páginas estáticas llamado Hexo.

Hay muchos otros como Jekyll o Pelican, el caso es que al final lo único que alojamos es un conjunto de páginas ya generadas y no necesitamos PHP, MySql, ni nada parecido.

Por el camino perdemos la función de búsqueda o los comentarios pero si se necesitan se pueden suplir con servicios como los de Google para buscar dentro del sitio y disqus para los comentarios.

10MB de almacenamiento es muy escaso y ahí tienen que estar tanto las páginas web como las imagenes que forman parte de las mismas.

Podemos complementarlo con servicios especializados como Imgur, YouTube, Vimeo, Dropbox, etc. y enlazarlos desde nuestra página.

Registro de dominio con alojamiento incluido

Finalmente la opción más adecuada que encontré es la empresa francesa OVH.
El registro de un dominio .com son 12€ al año e incluye lo que llaman alojamiento Start10M que proporciona:

  • 10MB para alojar la página web
  • 1 cuenta de correo de 5GB y 10 redirecciones de correo (a mi me dice hasta 2000 redirecciones)

Con estos recursos puedes tener una dirección de correo con el buzón alojado en OVH, mientras que las otras que necesites pueden ser redirecciones a otros servicios de correo como gmail, hotmail, etc.

Para la web, cojo el sitio pregenerado en mi puesto, asegurandome de que no pase de 10MB, y lo copio tal cual al alojamiento en OVH.

Comentarios finales sobre OVH con alojamiento Start10M

A favor

  • Para iniciar sesión, además de contraseña, soporta un segundo factor de autenticación, como por ejemplo Google Authenticator.
  • Si activas SSL generará automáticamente un certificado gratuito de Let’s Encrypt, y tu página ya será valida para acceder por https.
  • El DNS de OVH permite dns dinámico. Muy util si quieres que, por ejemplo, micasa.midominio.com apunte a la IP de tu conexión domestica.
  • Las páginas de administración son sencillas de utilizar
  • El alojamiento incluido soporta PHP y CGI (al no incluir base de datos no es muy útil pero…)

Carencias del alojamiento gratuito

  • En el alojamiento gratuito no permiten subir los ficheros por sftp. Solo por ftp y vía web. FTP es una imprudencia así que solo te queda hacerlo vía web que es un poco engorroso.
  • En el alojamiento gratuito solo se puede albergar el dominio principal con y sin www. No puedes alojar subdominios. Puedes crearlos en el DNS pero los tendrás que alojar en otros sitios

Solo llevo unos días con esta configuración, veremos que tal va.

En todo caso, insistir en que esto puede ser una opción para una pequeña web personal pero no es una buena sugerencia para un proyecto profesional. Ahí mi recomendación es asegurarse de contratar los productos y los servicios que el proyecto requiere.rse de contratar los productos y los servicios que el proyecto requiere.

Este sitio