Share This Post

Software

Cloudlinux

Cloudlinux

¿Que es Cloudlinux?

Cloudlinux es una distribución Linux basada en CentOS/RedHat desarrollada por Igor Seletskiy y su equipo de desarrolladores.

Para que sirve Cloudlinux?

Cloudlinux está diseñado para proveedores de hosting compartido y soluciona algunos problemas de este sector. Cloudlinux mejora las siguientes áreas: abuso de recursos, seguridad, rendimiento, rentabilidad, cada usuario es colocado en un mini entorno virtual llamado LVE (Lightweight Virtual Environment)

Ventajas para usuarios

Hoy en día la gran mayoría de los proveedores utilizan Cloudlinux, la gran ventaja para usuarios es que evita que vecinos abusivos hagan que nuestra web cargue lento o incluso que el servidor completo se caiga debido a que otro usuario está haciendo uso intensivo de los recursos del servidor, en pocas palabras brinda estabilidad, pero no solo mejora la estabilidad, adicionalmente Cloudlinux incorpora otras mejoras como por ejemplo la capacidad de escoger la versión PHP que deseamos e incluso activar o desactivar los módulos PHP.

Recientemente Cloudlinux ha incorporado LSAPI (LiteSpeed Server Application Programming Interface) que es la forma como Litespeed corre aplicaciones php y es extremadamente veloz además que minimiza el uso de memoria y cpu en aplicaciones PHP, en otras palabras usando LSAPI las aplicaciones PHP correrán más rápido y a la vez usarán menos recursos.

LVE en profundidad

LVM Manager

El proveedor de hosting puede limitar los siguientes recursos:

  • CPU usage (SPEED)
  • Virtual Memory (vMEM)
  • Physical memory (pMEM)
  • Concurrent connections (EP)
  • Number of processes (nPROC)
  • I/O limit (IO)
  • I/O operations per second
  • Number of inodes (soft|hard)

A continuación analizaremos cada uno de ellos

CPU usage (SPEED):

CPU Usage regula el uso del cpu en % (aunque también puede regularse en MHz o GHz), es básicamente el % de cpu máximo que un usuario puede utilizar. Es importante notar que este valor se refiere a un core y no al cpu en general, por ejemplo un valor de 100 quiere decir que el usuario puede usar hasta el 100% de un core del cpu, Esto no quiere decir que el proveedor te dejará utilizar el 100% de core las 24 horas del día, sino más bien es el uso máximo en momentos pico.

Un servidor web promedio tiene entre 4 cores a  36 cores físicos por lo que asignar un core permanentemente a un usuario de hosting compartido no solo sería inviable económicamente (salgo que el costo del servicio sea bien elevado) sino que además sería un desperdicio de recursos ya en la mayoría de los caso una web consume muy poco CPU y solo en momentos picos es que el consumo de CPU se eleva.

Tip para proveedores: Es recomendable asignar CPU en función de cores completos, ejemplo 100%, 200%, 300%, 400%, etc esto minimizará el uso del cpu requerido por Cloudlinux para mantener los límites

Virtual Memory (vMEM):

Este parámetro limita la memoria virtual o memoria que puede ser asignada a un LVE (o usuario debido  a que solo hay un LVE por usuario en Cloudlinux)

Si la aplicación supera esté límite en algunos casos no pasa nada pero en otros el cliente puede recibir un mensaje de error 503

Tip para proveedores: Como proveedor no es muy importante limitar cuando memoria un usuario solicita sino más bien cuanta memoria física usa, por lo que es una buena práctica dejar este valo como ilimitado y en su lugar limitar el uso de la memoria física

Physical memory (pMEM):

Limita la cantidad máxima de memoria física que un usuario puede utilizar simultáneamente es un valor muy importante tanto para usuarios como proveedores, muchas aplicaciones web no consumen mucha memoria RAM pero esto varia exponencialmente con el número de visitantes simultáneos, el diseño de la aplicación y otros factores del servidor. La mayoría de las webs trabajarán perfectamente bien con un límite de 1 GB, sin embargo esto podría no ser suficiente para aplicaciones especializadas y/o web con mucho tráfico. Otro punto a tener en cuenta es el uso de RAM está relacionado con la forma como se está ejecutando PHP, Litespeed y Cloudlinux con LSAPI ayudan a minimizar el uso de recursos en aplicaciones PHP

Tip para proveedores:  Un valor de 1 GB es recomendable en los planes básicos e ir aumentado este valor en los planes superiores

Concurrent connections (EP):

Este uno de los parámetros más útiles y menos comprendidos, muchos usuarios creen que este es el máximo de usuarios simultáneos que pueden visitar la web y aunque está relacionado no es así. Este valor limita en número máximo de conexiones activas pero debido  a que una conexión toma menos de un segundo y en cambio un usuario promedio no cambia o recarga la web cada segundo el número de usuarios conectados simultáneamente puede ser varias veces este valor.

La principal misión de este valor es minimizar el impacto al servidor y a otros clientes en caso que la web reciba un ataque DoS o DDoS

Tip para proveedores:  Un valor de  entre 20 a 50 EP es apropiado para la mayoría de los casos, si un cliente requiere de más de 50 probablemente ya no debería estar en un hosting compartido

Number of processes (nPROC):

Limita el número de procesos e hilos que el LVE puede ejecutar simultáneamente, esto incluye tareas cron, conexiones ssh, imap, es poco frecuente que un cliente de hosting compartido requiera de más de 25 nPROC.

Tip para proveedores:  nPROC debe ser siempre superior a EP, un valor apropiado para nPROC = EP * 2

I/O limit (IO):

Limita la tasa de transferencia con la que podemos leer y escribir hacia y desde discos expresado en KB/s. Todos los proveedores utilizan algún tipo de arreglos RAID esto no solo mejora la tolerancia a fallos sino también incrementa el rendimiento, sin embargo y aún con el uso de discos SSD el sub-sistema de almacenamiento sigue siendo el componente más lento de un servidor y a menudo es el principal cuello de botella, por esto no es de extraño que los proveedores quieran  de alguna forma limitar la tasa de transferencia y de esta forma evitar que un usuario abusivo acabe con el buen rendimiento de un servidor.

El valor de I/O limite depende del tipo de almacenamiento usado por el proveedor, por ejemplo en servidores con arreglos de discos SATA estos son mucho más lentos que los discos SSD por lo que es normal esperar límites más bajos que en servidores equipados con discos de estado sólido, en líneas generales 1024 KB/s debe dar un rendimiento adecuado.

I/O operations per second:

Es muy similar a I/O limit pero en este caso se refiere al números de operaciones de lectura y escritura a disco en lugar de la tasa de transferencia.

Los discos tienen un límite de operaciones por segundo que pueden realizar, esto varía de acuerdo al disco pero en general un disco SATA de buena calidad es capaz de realizar unas 300 operaciones de lectura/escritura por segundo, los discos SSD entre 20.000 a 60.000 y los discos NVMe aún más, pero estas operaciones se comparten entre todos los usuarios del servidor y entre las operaciones internas del mismo servidor por lo que es normal encontrar ciertos límites en el número de iops que podemos realizar. No hay una regla general para el valor de IOPS sin embargo y la mayoría de los usuarios trabajará perfectamente bien con valores tan bajos como 100, pero depende del tráfico de la web, la cantidad de lecturas y escrituras a disco que efectúe y la tecnología de almacenamiento (SATA, SSD, NVMe, etc)

Number of inodes (soft|hard):

Limita el número de inodos que un usuario puede usar, para entender bien este límite debemos primero comprender que es un inodo

Un inodo es un apuntador dentro del sistema de archivos, cada archivo en en disco está referenciado por un inodo por lo tanto el número de inodos será siempre igual a la cantidad de archivos en disco.

Es importante conocer el límite de inodos el cual suele ser un número bastante grande, por ejemplo 250.000 pero en la práctica no es tan difícil llegar al límite de inodos, cada archivo, imagen o correo electrónico que almacenamos en el servidor usa un inodo. Algunos proveedores establecen en sus Términos de Servicio que pasados X cantidad de inodos la cuenta del usuario NO recibirá backups automáticos.

¿Que buscar en un proveedor de hosting referente a Cloudlinux?

Lo ideal es encontrar un proveedor que tenga una política clara y establezca los límites de forma visible y si no están visibles los límites del plan, ningún proveedor responsable tendrá problemas en responder cuales son los límites para  cada uno de sus planes, si el proveedor no indica claramente los límites del plan y tampoco responde al ser consultado al respecto es una CLARA señal que no es el proveedor que nos conviene.

Nuestra recomendación:

CPU usage (SPEED) = Al menos 100%

Virtual Memory (vMEM) = ilimitado

Physical memory (pMEM) = 1024 KB o superior

Concurrent connections (EP) = 30 o superior

Number of processes (nPROC) = 60 o superior

I/O limit (IO) = 1024 KB o superior

I/O operations per second = 100 iops o superior

Number of inodes (soft|hard) = 250.000 o superior

Los límites necesarios varían de acuerdo al tipo de web que planeas alojar y al tráfico de la misma, los valores recomendados son para una web promedio.

CPU = 100% o más
Memória Física 1024KB o más
Conexiones Concurrentes (EP) 30 o más
Número de Procesos (nPROC) 60 o más
I/O limit (IO) = 1024/KBps o superior
I/O operations per second 100 o más

Share This Post

Imagen de perfil de Canal Hosting
Apasionado de la tecnología y negocios en la era digital. Experto en Hosting y Administración de Sistemas con más de 25 años de experiencia. Co-fundador y Asesor Técnico de Canal.Hosting.

Leave a Reply

Lost Password

Register