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.

Entrevista a Bjarne Stroustroup para el Computer History Museum

A través de la web de http://isocpp.org he llegado a esta entrevista que le han hecho para el Computer History Museum al creador de C++, Bjarne Stroustroup.

A raiz de que le han concedido el Fellow Award del Computer History Museum en este año (2015), por su invención del lenguaje de programación C++, le han hecho una interesante entrevista.

Me ha parecido muy interesante por como ayuda a poner en contexto muchas cosas que sucedieron antes de que yo supiera lo que era un ordenador.

Si vemos la entrevista en la página original del museo dispondremos de la transcripción de la entrevista sincronizada con el video lo que puede hacer más fácil seguirla.

Será que me estoy haciendo mayor pero ultimamente estoy disfrutando mucho de escuchar a “los abuelos”, los brillantes abuelos que dieron forma a lo que hoy usamos, contar batallitas.

No hace mucho estuve viendo las sesiones de formación que Alexander Stepanov impartió en A9 y que se publicaron en youtube.

Ver toda la serie es un poco arduo, y Stepanov me pareció a veces un poco vehemente de más en algunas cuestiones. Aun así es muy interesante escuchar a una persona cuyo trabajo ha influido tanto no solo en lo que estamos usando ahora, como la STL, sino en la innovación más actual, como son los concepts que se esperan para C++17. esperan para C++17.

Conferencias «The Case of Unexplained» de Mark Russinovich

El mes pasado Microsoft celebró TechEd Noth America 2014.

En esas jornadas Mark Russinovich, autor de las herramientas de Sysinternals, dio una edición más de sus conferencias “Case of the Unexplained” en las que explica como utilizar las herramientas de Sysinternals y alguna otra más con el fin de diagnosticar problemas en Windows, localizar al causante e intentar resolverlos.

Estas conferencias son muy útiles para los que trabajamos en TI.

Estas serían las conferencias de los últimos años:

 

Impresión de papeles pequeños

¿Has tenido que imprimir alguna vez con tamaños de papel pequeños en tu impresora? Entonces sabrás que aunque la mayoría de las impresoras manejan bien los tamaños habituales de papel, muy pocas manejan muy bien los papeles muy pequeños y muy delgados.

El problema con estos papeles suele estar relacionado con la alimentación de papel; como es muy pequeños algunas lo cargan torcido, cuando son muy delgaditos suelen coger varias hojas a la vez desplazadas quizas unos centimetros e imprimir parte de la página en una hoja y parte en otra, etc.

Hoy me ha tocado imprimir por la parte de atrás de unas hojitas ya impresas (de imprenta) en un papel bastante finito y con un tamaño de 14cmx8,5cm, con mi impresora una HP Deskjet 5151. El problema que he tenido con esta es el de coger dos hojas a la vez con bastante frecuencia, lo que suele obligarte a primero estar pendiente de ella y por otro a tirar las dos hojas mal impresas.

Pero he descubierto una cosa muy interesante que por lo menos no tenían las impresoras que yo he usado hasta el momento. Si en las propiedades de impresión elijo un papel como “papel mate para folletos y prospectos hp la impresora actua teniendo en cuenta que es un papel dificil de cargar y lo carga mucho más despacio y con mas cuidado de forma que ya no coge dos hojas a la vez.

Cada vez estoy más contento con esta impresora. No puedo hablar de calidad en foto porque nunca imprimo nada en papel fotográfico, pero para el uso diario una impresora muy recomendable y con un coste de impresión bastante contenido.

Este sitio