Los patrones de carga nos permiten balancear entre los servidores de una granja Citrix XenApp la carga de usuarios o la ejecución de aplicaciones.
El patrón de carga utiliza reglas para evaluar cual es la carga del servidor en cada momento. Esas reglas toman los datos de distintos contadores como pueden ser el uso de CPU, el uso de memoria, el número de usuarios en el servidor… Con la información obtenida se evalua la carga del servidor y se utiliza esa carga para redirigir las peticiones de los usuarios.
Los pasos serían los siguientes:
- Periodicamente los servidores calculan su carga según las reglas establecidas en el patrón de carga asignado a ese servidor
- Los servidores envían la información obtenida al servidor Data Collector de su zona
- El servidor Data Collector almacena la información de todos los servidores de la zona y mantiene una tabla con todas las cargas de los servidores
- Cuando un usuario se conecta, la petición le llega al servidor Data Collector y redirige la conexión al servidor más descargado según la tabla que mantiene.
Comandos utiles para depurar el comportamiento de los patrones de carga
Qfarm
El comando qfarm nos permite obtener información del estado de carga de los servidores de una granja.
1 qfarm /load
Con XenApp 6.5 nos aparecen 4 columnas:
- Nombre del servidor
- Carga del servidor
- Regulación de carga
- Modo de inición de sesión
Hay 4 opciones disponibles para la carga de un servidor:
- Entre 0 y 10000: es el estado normal. A número más alto más carga del servidor.
- 10000: el servidor está cargado y no acepta peticiones
- 20000: hay un problema con el servidor (por ejemplo problema de licencias)
- No aparece: hay un problema con el servidor, por ejemplo el servicio IMA no está arrancado.
Además si utilizamos la regla Regulación de carga aparece una segunda columna que indica el valor asignado por esta regla para realizar el cálculo de carga.
La 4 columna nos indica si están habilitados los inicios de sesión, o deshabilitados.
Queryds
El comando Queryds (http://support.citrix.com/article/CTX106318) nos va a ayudar a depurar y validar el correcto funcionamiento de los patrones de carga y ver su comportamiento en los servidores. Nos permite hacer consultas en la información almacenada en el data collector de la zona de nuestra granja.
Como utilizar Queryds
Querdys tables nos de vuelve la lista de tablas en las que podemos consultar datos
> queryds tables
LMS_AppLoadTable
Rade_OfflineLicense
Rade_Servers
Rade_Sessions
SubnetServer
LMS_ServerLoadTable
LMS_LicensedServerTable
Sessions
SubscriptionTable
ServiceTable
La tabla que guarda información sobre la carga de los servidores es LMS_ServerLoadTable
Ejecutamos el comando para consultar la tabla
>querdys /table:LMS_ServerLoadTable
[LMS_ServerLoadTable]: 20 records.name : 7653-000c-00000337
host : APP01
zone : CPD
RealTimeRules :
ProtocolMask : 1c
00110008
: 5
00110009
: 0
0011000A
: 0
Load : 18d2
RuleLoads : 1:19;b:3b;d:0;3:33;
00110007
: 7d0name : 5bc0-000c-00000517
host : APP02
zone : CPD
RealTimeRules :
ProtocolMask : 42
00110008
: 5
00110009
: 0
0011000A
: 0
Load : 2710
RuleLoads : b:35;3:2f;1:64;d:0;
00110007
: 0
Para interpretar los datos de carga, que se muestran en el campo RuleLoads. Este campo nos muestra valores en pareja separados por puntos y comas.
Identificar las reglas del patrón de carga:
RuleLoads: (For reference when using queryds /table:LMS_ServerLoadTable)
- 1: Utilización de CPU
- 2: Cambios de contexto
- 3: Utilización de Memoria
- 4: Errores de página
- 5: Programación
- 6: Intercambios de paginación
- 7: E/S de datos en disco
- 8: Operaciones en disco
- 9: Intervalo IP
- a: Carga de usuarios en la aplicacion
- b: Carga de usuarios en el servidor
- d: Regulación de carga
Por ejemplo, vamos a ver los pasos para entender la siguiente regla:
RuleLoads : 1:3b;b:2a;d:0;3:2e;
Separamos las parejas de números:
- 1:3b -> Utilización de CPU
- b:2a -> Carga de usuarios en el servidor
- d:0 -> Regulación de carga
- 3:2e -> Utilización de memoria
Pasamos los valores a decimal
- 3b -> 59
- 2a -> 42
- 0 -> 0
- 2e -> 46
Cojemos el valor más alto, en este caso 59, y vemos que el valor que está penalizando más la carga en ese servidor es el consumo de CPU.
Por ejemplo si ejecutamos qfarm /load, vemos que el valor asignado para ese servidore es cergano a ese valor más de CPU
Enlaces de interés
Load Manager Rules Explained: http://support.citrix.com/article/CTX105449
Troubleshooting Load Balancing Issues: http://support.citrix.com/article/CTX112082
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?