Throttle: Control de congestión
Vista general:
Esta página será de gran beneficio para aquellos usuarios que tengan su sitio web alojados en un servidor compartido. Cuando tiene poco o ningun control sobre la configuración de su servidor, puede ser extremadamente difícil preparalo para cargas inesperadas, tal como un vínculo de Slashdot.
Los pasos a continuación describen el mecanismo interno de drupal para el control de congestión, el auto-regulador, y le guiará en su configuración.
Nota: si tiene control completo sobre el servidor que aloja su sitio web, primero debería ajustar correctamente el sistema operativo, la base de datos, el servidor web y PHP.
Ajustando el auto-regulador
- Habilite el caché de Drupal: una de las mejoras de funcionamiento más dramáticas que se pueden realizar en Drupal es habilitar el soporte de caché. Esto reduce inmensamente la sobrecarga asociada con el despliegue de las páginas para los usuarios anónimos. Para habilitar el caché, diríjase a la página de configuración de su sitio en
administrar > configuración
y seleccioneHabilitado
debajo de las palabrasSoporte de caché:
, luego haga clic en “Guardar configuración”. - Habilite el módulo de estadísticas: Para usar el auto-regulador, primero deberá habilitar el módulo de estadísticas. Este puede ser encontrado en su sitio en
administrar > configuración > módulos
. Seleccione la marca en la columna de estatus, y haga clic enGuardar configuración
. - Habilite el registro de acceso: Con el módulo de estadísticas habilitado, ahora deberá habilitar el registro de acceso. Este registro escribe una entrada en una tabla de la base de datos cada vez que su sitio muestre una página. La auto-regulación utiliza esta información para monitorear la cantidad de tráfico que tiene su sitio.
Para habilitar el registro de acceso, diríjase aadministrar > configuración > módulos > estadísticas
en su sitio, y haga clic sobreHabilitado
debajo de las palabrasHabilitar registro de acceso:
. Si usted es el único utilizando este registro, y desea mantener su base de datos lo más pequeña posible, puede ajustar el tiempo que se mantiene el guardado el registro a 1 hora aproximadamente. Al finalizar, haga clic enGuardar configuración
. - Habilite el módulo de regulación: Ahora necesita habilitar el módulo de regulación. Regrese al módulo de administración en su sitio en
administrar > configuración > módulos
y coloque una marca de verificación en la columna estado, y haga clic enGuardar configuración
. - Habilite el bloque
Estado de regulación
: Con el fin de ajustar apropiadamente el auto-regulador en su sitio, necesitamos conocer la cantidad de tráfico que su sitio tiene. El módulo de regulación provee un bloque para este propósito. Diríjase a la página de administración de bloques enadministrar > configuración > bloques
, y habilite el bloqueEstado de regulación
. Para este caso, no seleccionepersonalizado
oregular
, pero puede ajustar libremente elpeso
y la “región” según sus preferencias. Ahora haga clic enGuardar bloques
. - Configure los permisos de acceso para el bloque
estado de regulación
: No es deseable que los usuarios de su sitio vean el bloqueEstado de regulación
que acaba de habilitar. Este bloque está diseñado como una herramienta administrativa. Si usted es el único administrador del sitio, y adminístra el sitio como uid=1, entonces no necesita establecer ningun permiso—por defecto, uid=1 tiene todos los permisos. Por otra parte, si tiene múltiples administradores o administra su sitio con una cuenta diferente, necesitará conceder a su grupo administrativo el permisoacceder al bloque de regulación
.Vaya a la página de administración de permisos en su sitio en
administrar > cuentas > permisos
y ubique el permisoaccesar lista de usuarios
. Coloque una marca de verificación en la columna del rol apropiado y haga clic enGuardar permisos
. Es importante tener en cuenta que todos los usuarios en ese rol verán el bloqueestado de regulación
, debido a que se puede crear una sobre carga al desplegar este bloque ya que cada vez que se muestra se realiza una consulta a la base de datos. - Habilite el auto-regulador: Al actualizar el sitio, podrá ver el bloque
Estado del regulador
. Todo lo que este dice en este momento esRegulación: deshabilitada
, indicando que actualmente la regulación no está activada.
La auto regulación puede habilitarse en la página administrativa del módulo de regulación enadministrar > configuración > módulos > regulador
. Puede encontrar rápidamente esta página haciendo clic en la palabradeshabilitado
en el bloqueEstado del regulador
. En la página administrativa, haga clic enhabilitado
debajo de las palabrasHabilitar auto-regulador
, y haga clic enGuardar configuración
. - Monitoreando el bloque
Estado del regulador
: Ahora debe notar que hay más información desplegada en el bloqueEstado del regulador
. Lo único que nos interesa en este momento es la sección del fondo que debe decir algo comoEste sitio ha servido 13 páginas en el minuto pasado
. Esto significa exactamente lo que dice: durante los pasados 60 segundos, su sitio apoyado en Drupal ha servido 13 páginas a los visitantes del sitio. Esto incluye todas las páginas que han sido vistas por usted mismo, usuarios registrados, invitados o anónimos, clientes RSS, máquinas de búsqueda, y cron.Para ajustar correctamente el auto-regulador, deberá monitorear este bloque cuidadosamente para conocer realmente la ocupación promedio de su servidor. En particular, deberá conocer la ocupación promedio de su sitio en la hora más activa de cada día. En nuestro ejemplo, asumiremos que su sitio está sirviendo entre 10-12 páginas por minuto cuando está ocupado. Esta información deberá ser usada para ajustar nuestro regulador.
- Ajustando el auto-regulador: Una vez más regrese a la página de administración del módulo de regulación en
administrar > configuración > módulos > regulador
. (Una forma rápida de acceder a este es haciendo clic sobre la palabrahabilitado
en el bloqueEstado del Regulador
). Ahora ajustaremos las dos opciones en la secciónAjustes del auto-regulador
.La primera opción es el
multiplicador del Auto-regulador
. Generalmente es una buena idea establecer el multiplicador a un número cercano al número de páginas que su sitio sirve en promedio cuando está ocupado. En nuestro ejemplo era 12, así que el multiplicador del auto-regulador será establecido a12 (0,12,24,36,48,60)
. Cada uno de los números en los paréntesis es unnivel de regulación
, con 0 siendo el nivel 0, 12 siendo el nivel 1, y así sucesivamente hasta 60 que es el nivel 5. Cada uno de estos números es un múltiplo del número 12 que fue el que seleccionamos. Cuando nuestro sitio comienza a servir 12 páginas por minuto, el nivel del auto-regulador pasa al nivel 1. Si el sitio se ocupa el doble de lo normal y comienza a servir 24 páginas por minuto, el regulador pasará a nivel 2. Esto continúa hasta que el sitio esté sirviendo más de 5 veces lo normal, donde el nivel del auto-regulador se encontrará en 5.La segunda opción es el
Limitador de probabilidades del auto-regulador
. Esta opción de configuración de nombre fantástico es usada para minimizar la sobrecarga generada por el auto-regulador. Como verá, para calcular el nivel actual de regulación este módulo debe realizar una consulta a la base de datos. Como se sabe, uno de los puntos críticos de un servidor compartido es la base de datos, así que las consultas a estas son consideradascostosas
. Entonces, ajustamos ellimitador de probabilidades
para que realice la consulta extra a la base de datos solo en un porcentaje de páginas vistas. Si se coloca este valor al 10%, se estará realizando la consulta por aproximadamente 1 de cada 10 páginas mostradas en su sitio Drupal. Este valor no deber mayor al 10%, incluso para sitios muy ocupados, probablemente deberá colocarlo en un porcentaje mucho menor. Hay que ser cuidadoso con esto, ya que mientras menor sea el porcentaje, más demorará el auto-regulador en detectar una sobrecarga. - Auto-regulando bloques: en Drupal 4.4 y superior (o en la última versión CVS), es posible configurar los bloques para que sean deshabilitados automáticamente cuando el auto-regulador alcance el nivel máximo de 5, indicando que se está presentando una sobrecarga en ese momento. Esto puede suceder por varias razones, tal como un link de Slashdot, o por ser indexado por los agresivos robots de google, o por un ataque intencional DoS (Denial of Service – Negación de servicio). Bajo esas cargas pesadas, su sitio puede entrar en un estado de error usualmente reportando errores de MySQL diciendo algo así como
Demasiadas conexiones –Too many connections-
. Al deshabilitar automáticamente los bloques, el costo de generar las páginas en su sitio requerirá menos consultas a la base de datos y su sitio será capaz de mantenerse estable aun con un gran número de entradas. - Auto-regulando módulos: En Drupal 4.4 y superior (o la última versión CVS), es también posible configurar módulos enteros para que sean deshabilitados cuando la auto-regulación alcance el nivel máximo, indicando que se alcanzó la carga máxima.
Para regular módulos, diríjase a la página de administración en su sitio en
administrar > configuración > módulos
. Ahora, para cada módulo que debe ser desactivado cuando se alcance la carga máxima seleccione la casillaregular
. Decidir qué módulos regular puede ser más difícil que decidir los bloques a desactivar. Se recomienda que experimente en su entorno de desarrollo, deshabilitando módulos y observe cómo esto afecta a su sitio. Mientras menos potente sea el servidor web, más módulos deberá desactivar. Generalizando, regular módulos tendrá un mayor efecto que regular bloques.Ahora, cuando su sitio esté sobrecargado, todos los módulos que tengan habilitada la regulación serán automáticamente deshabilitados. Todos los aspectos del módulo serán deshabilitados incluyendo los vínculos, páginas y/o bloques el módulo genere. Durante todo el tiempo que demore la sobrecarga los bloques permanecerán deshabilitados, optimizando la página y ayudando a prevenir errores de la base de datos. Cuando comience a descender la carga, los bloques se restaurarán automáticamente.
- Ajustando continuamente el auto-regulador: Ahora su sitio está potencialmente listo para manejar sobrecargas, sin embargo es importante continuar monitoreando el bloque
Estado del regulador
para asegurarse de que su sitio esté configurado correctamente. En particular, mire el campoNivel actual
, y asegúrese de que bajo la carga promedio no pase del nivel 2. Si esto sucede, entonces probablemente deba regresar y ajustar el multiplicador a un valor más alto como se describió anteriormente. Por otra parte, si su sitio siempre muestra unNivel Actual
de 0, probablemente deberá ajustar el multiplicador a un valor menor.Tambien debe tener en cuenta que con el tiempo la popularidad de su sitio puede cambiar, de tal manera que lo que era una carga normal hace unos meses puede ser una carga muy alta o muy baja en el mes actual.
- Efecto Slashdot!
Incluso con el auto-regulador habilitado y configurado correctamente, es posible que cuando esté siendo vinculado por un sitio altamente visitado tal como Slashdot su servidor cometa errores. Posiblemente se deba a que su servidor compartido no puede manejar la carga, pero esto se puede solucionar. Aquí hay unos cuantos consejos: - Intente ajustando el
multiplicador del auto-regulador
a un valor mas bajo de tal manera que se pueda detectar más rápidamente una sobrecarga. - Intente ajustando el
limitador de probabilidades del auto-regulador
a un porcentaje más alto de tal manera que se pueda detectar más rápidamente una sobrecarga. No se recomienda subir este valor sobre el 10% ya que puede tener un impacto negativo en la funcionalidad del sitio. - Habilite el
regulador
para todos los bloques, excepto aquellos que son esenciales. - Habilite el
regulador
para todos los módulos, excepto aquellos que son esenciales. (este es posiblemente el consejo más importante) - Modifique su tema para que esté preparado para una sobrecarga, desactivando automáticamente imágenes grandes cuando sea necesario. Remítase a la función del módulo de regulación
throttle_status()
. - Comuníquese con su proveedor de web hosting para discutir sobre cómo pueden ellos mejorar el rendimiento de su servidor web...
10.
Para regular los bloques diríjase a la página de administración de bloques en administrar > configuración > bloques
. Ahora, para cada bloque que debe estar deshabilitado cuando su sitio esté sobrecargado, haga clic en la casilla de verificación Regulación
. Es recomendable que seleccione la mayoría de los bloques excepto talvez Navegación
e Ingreso de usuarios
. Cuando cuenta con un servidor web con pocos recursos, probablemente deseará agregar el Ingreso de usuarios
de tal forma que no puedan ingresar más usuarios durante las sobrecargas, ya que cada página que sea vista por un usuario deberá ser generada dinámicamente a diferencia de las que ven los invitados que provienen del caché.
Ahora, cuando el sitio tenga una gran sobrecarga, todos los bloques que tengan habilitada la regulación serán deshabilitados automáticamente. Durante todo el tiempo que demore la sobrecarga los bloques permanecerán deshabilitados, optimizando la página y ayudando a prevenir errores de la base de datos. Cuando comience a descender la carga, los bloques se restaurarán automáticamente.
- Inicie sesión o regístrese para enviar comentarios

Comentarios
Control de congestión
Interesante; espero no toparme con este modulo nunca jamas. xDD
Saludos