lunes, 3 de noviembre de 2014

Servidores en Linux


Recientemente he estado montando un cluster de servidores virtuales con el objetivo de poder probar y trabajar con distintos programas y técnicas orientados a la escalabilidad de aplicaciones web. De hecho espero no tardar mucho en publicar algo sobre el cada vez más popular servidor Nginx.

Una pregunta que mucha gente se hace a la hora de instalar un servidor en Linux es qué distribución debería utilizar para ello. Hay tantísimas opciones que resulta extremadamente fácil perderse entre ArchLinux, CentOSDebianFedoraRed Hat, Ubuntu Server...

Lo cierto es que esta cuestión no debe preocuparnos realmente. No olvidemos que, en cualquier caso, sigue siendo el kernel de Linux lo que estamos ejecutando en nuestros servidores, y éste no se desarrolla para ninguna distribución específicamente. Así pues, partiendo de la base de que todos son lo mismo, lo único que nos puede hacer decantarnos por uno u otro son detalles como el sistema de paquetes utilizado (apt, rpm, pacman...) o los programas preinstalados que sirvan a nuestro propósito. A este respecto, últimamente es CentOS el que está pegando más fuerte y está más de moda, aunque al final, como os digo, podemos hacer lo mismo en todas las distros.

Realmente, lo que nos importa en un servidor es la potencia pura y dura con la que éste puede rendir para poder atender concurrentemente al mayor número de clientes posibles. Y para ello, un buen procesador y una gran cantidad de memoria RAM suelen ser los elementos más demandados. Y precisamente de ésto (del consumo de memoria) es de lo que me dispongo a hablar en ésta entrada.

Particularmente, dado que soy bastante fan de APT y de Debian (y derivados) como ya dejé patente en la presentación del blog, he decidido, por seguir en la línea de las últimas entradas, montar los servidores sobre Linux Mint 17 Mate (basado en Ubuntu 14.04 LTS), y tras configurar todas mis herramientas me di cuenta de que, si bien el consumo de memoria del escritorio Mate (fork de Gnome 2) es bastante bueno, podía mejorar aún más si no arrancaba entorno gráfico. En efecto, los servidores web no suelen tener instalado nunca un servidor gráfico para aprovechar al máximo los recursos del sistema, ya que tener en ejecución todo un entorno visual suele ser bastante costoso en memoria, por muy bueno que sea, siempre hay un precio.

Dado que al instalar Linux Mint se instala con un entorno gráfico sí o sí, tenemos que hallar la forma de deshabilitarlo al arrancar el sistema para poder optimizar el uso de la memoria.

Para empezar, es bueno tener instalada alguna herramienta de monitorización del sistema que funcione a través del terminal. A pesar de existir "top", que cumple muy bien este objetivo, yo soy más fan de "htop", la cual es más vistosa y configurable, y que se instala con una simple instrucción:

Bastará con escribir "htop" en el terminal para arrancarla. Es sencilla de configurar y podremos tener con facilidad algo como esto:


De un simple vistazo tenemos la carga de los ocho procesadores del sistema, la memoria ocupada, el espacio de intercambio libre... y podemos saturarnos aún más de información si lo deseamos, o incluso verla gráficamente.

Ahora que tenemos una forma rápida y bonita de comprobar la carga de nuestro sistema, vamos a desactivar el escritorio para que al arrancar, tengamos simplemente la consola. Para ello, en el terminal escribimos:

Y buscamos la siguiente línea...

...para dejarla así:

Tras esto, guardamos y escribimos:

Ahora, la próxima vez que reiniciemos el sistema, ya no arrancará el escritorio predeterminado sino la consola para loguearnos. Si en cualquier momento deseamos arrancar el entorno gráfico sin hacerlo de manera permanente, es decir, sin reiniciar el sistema ni deshacer todo lo que acabamos de hacer, bastará con escribir lo siguiente en la consola:

He comprobado cómo la memoria ocupada pasaba de más de 330 MiB a menos de 80 MiB, lo cual implica una mejora de ¡¡más del 300%!! Y eso sin matar ningún proceso activo que seguramente sea prescindible. Así que, para el que todavía no se haya enterado, ya lo sabe, es necesario deshabilitar siempre el entorno gráfico cuando estamos trabajando en un servidor de producción.

Por cierto, si alguna vez os veis en la necesidad, como yo hoy, de cambiar el nombre de una de vuestras máquinas para que no se repitan nombres dentro de una misma red, basta con editar los dos siguientes archivos:

Por otro lado, no quisiera terminar esta entrada sin hablaros antes de TurnKey Linux, un sitio donde podréis encontrar rápidamente más de un centenar de máquinas virtuales (o incluso imágenes ISO instalables) basadas en Debian con herramientas preinstaladas y configuradas listas para casi cualquier cosa que imaginemos, desde Drupal o Joomla hasta Nginx con CouchDB o Apache + MySQL; todo esto con una poderosa y útil interfaz de control web (basada en Webmin) como podemos ver aquí:


Personalmente, considero muy importante saber instalar y configurar las cosas uno mismo, pero desde luego, herramientas como TurnKey nos pueden facilitar mucho la vida si estamos necesitados de velocidad para hacer algo, o si estamos hartos de realizar siempre la misma tarea repetitiva de instalación y configuración y queremos que nos den el trabajo ya hecho.

Por cierto, ya que estamos, quiero comentar algunos detalles respecto a TurnKey para facilitar aún más la entrada en esta herramienta tan útil. El primero es que, si decidís descargar una de sus máquinas virtuales y ejecutarla, no os olvidéis de habilitar la opción I/O APIC en la pestaña "Sistema" de la configuración de vuestra máquina en VirtualBox.

Lo segundo a tener en cuenta es que, cuando empecéis a escribir en la consola de TurnKey, os daréis rápidamente cuenta de que el mapa de teclado no está en español precisamente, por lo que para arreglarlo tenéis que hacer:

Mientras se instala el programa, se lanzará un asistente para preguntarnos por nuestra distribución de teclado. Si en cualquier momento nos equivocamos o arrepentimos, siempre podemos volver a lanzar dicho asistente a través de esta instrucción y reiniciar posteriormente:

Y, finalmente, si estamos manejando la consola de TurnKey y queremos en cualquier momento volver a la pantalla inicial que aparece al arrancar el sistema, bastará con escribir lo siguiente:

Para despedir la entrada, y a modo de curiosidad totalmente fuera del tema de servidores que hemos estado tratanto, si alguien está interesado en saber con qué programa he hecho el gráfico tan bonito resumiendo las características de mi pc que se muestra en la imagen que encabeza esta entrada, la respuesta es usando screenFetch.

¡Un saludo a todos!


Referencias:
  • Linux Mint Forums • LM 17 Cinn - can I change the run level to 3? [Link]
  • How to set non-US keyboard & language [Link]

No hay comentarios:

Publicar un comentario