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

  1. 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 seleccione Habilitado debajo de las palabras Soporte de caché:, luego haga clic en “Guardar configuración”.
  2. 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 en Guardar configuración.
  3. 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 a administrar > configuración > módulos > estadísticas en su sitio, y haga clic sobre Habilitado debajo de las palabras Habilitar 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 en Guardar configuración.
  4. 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 en Guardar configuración.
  5. 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 en administrar > configuración > bloques, y habilite el bloque Estado de regulación. Para este caso, no seleccione personalizado o regular, pero puede ajustar libremente el peso y la “región” según sus preferencias. Ahora haga clic en Guardar bloques.
  6. Configure los permisos de acceso para el bloque estado de regulación: No es deseable que los usuarios de su sitio vean el bloque Estado 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 permiso acceder 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 permiso accesar lista de usuarios. Coloque una marca de verificación en la columna del rol apropiado y haga clic en Guardar permisos. Es importante tener en cuenta que todos los usuarios en ese rol verán el bloque estado 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.

  7. Habilite el auto-regulador: Al actualizar el sitio, podrá ver el bloque Estado del regulador. Todo lo que este dice en este momento es Regulació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 en administrar > configuración > módulos > regulador. Puede encontrar rápidamente esta página haciendo clic en la palabra deshabilitado en el bloque Estado del regulador. En la página administrativa, haga clic en habilitado debajo de las palabras Habilitar auto-regulador, y haga clic en Guardar configuración.
  8. Monitoreando el bloque Estado del regulador: Ahora debe notar que hay más información desplegada en el bloque Estado del regulador. Lo único que nos interesa en este momento es la sección del fondo que debe decir algo como Este 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.

  9. 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 palabra habilitado en el bloque Estado del Regulador). Ahora ajustaremos las dos opciones en la sección Ajustes 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 a 12 (0,12,24,36,48,60). Cada uno de los números en los paréntesis es un nivel 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 consideradas costosas. Entonces, ajustamos el limitador 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.

  10. 10.

  11. 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.

    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.

  12. 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 casilla regular. 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.

  13. 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 campo Nivel 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 un Nivel 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.

  14. 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...

Comentarios

Enviado por mama21mama el

Interesante; espero no toparme con este modulo nunca jamas. xDD
Saludos