El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe cómo pueden funcionar lentamente las actividades de Unified Contact Center Express (UCCX), que requieren el acceso a la base de datos UCCX local. Hace que las páginas AppAdmin se carguen lentamente, que las actualizaciones a AppAdmin tarden mucho tiempo en afectar, un retraso en la respuesta a una consulta de panel, que Workforce Manager no pueda consultar los datos UCCX, y otros problemas de rendimiento y estabilidad.
El comando show process load, ingresado en la CLI, muestra que la uccxoninit consume una gran cantidad de CPU. El proceso uccxoninit representa la instancia de base de datos de UCCX Informix que se ejecuta en el servidor de UCCX.
Contribuido por Sridhar Chandrasekharan, Ryan LaFountain y Ben Wollak, Ingenieros del TAC de Cisco.
El motor de base de datos que soporta la aplicación UCCX es Informix de IBM. La configuración y la información histórica que se agrega a la página AppAdmin de UCCX y que se produce mediante la aplicación UCCX se almacena en la instancia de UCCX Informix.
La aplicación UCCX proporciona tres usuarios que se pueden utilizar para acceder a la base de datos UCCX directamente con el fin de extraer información para las aplicaciones de cartón, Quality Management, Workforce Management e informes históricos personalizados.
Aquí se describe la información del usuario, los permisos de cada usuario y el propósito deseado de cada usuario:
uccxwallboard - Este usuario sólo tiene permisos de selección en las tablas de base de datos en tiempo real que contienen instantáneas de estadísticas en tiempo real escritas desde la memoria del UCCX Engine. Los permisos de selección restringidos a las tablas RTCSQsSummary y RTICDStatistics significan que el usuario de uccxwallboard se debe utilizar para consultar la base de datos de UCCX con frecuencia con consultas simples y no complejas que se deben originar en una aplicación de pared.
En UCCX Release 10.0 y posteriores, ingrese el comando utils uccx database dbperf start <totalHours> <interval> para comenzar el seguimiento del rendimiento en la base de datos de UCCX. El argumento interval en este comando determina la periodicidad de la colección de seguimiento y el argumento totalHours determina la cantidad total de tiempo que el seguimiento se ejecuta antes de que se inhabilite. Estos parámetros son opcionales. Si no se especifican cuando se ejecuta el comando, se utilizan los valores predeterminados de 20 minutos y 10 horas.
Por ejemplo, ingrese el comando utils uccx database dbperf start 24 30 para habilitar el seguimiento del rendimiento en la base de datos y recopilar datos sobre estadísticas de rendimiento cada 30 minutos durante 24 horas.
Las instrucciones para recopilar los datos obtenidos por el comando CLI se imprimen en el resultado del comando.
Después de las horas totales proporcionadas, la recopilación de datos se detiene automáticamente. Para detener manualmente la recolección de datos, ingrese el comando utils uccx database dbperf stop.
Si la versión UCCX es la versión 9.0(2) o anterior y la base de datos uccx utils dbperf no está disponible, póngase en contacto con el Centro de asistencia técnica (TAC) para obtener más ayuda.
TAC ejecutará manualmente la secuencia de comandos dbperf.sh adjunta a la ID de bug de Cisco CSCuc68413 con acceso a cuenta de soporte remoto.
Cuando determina cuándo iniciar la ejecución de la secuencia de comandos manualmente o a través del comando CLI, la periodicidad y el tiempo total, asegúrese de que la CPU sea consumida por uccxoninit el proceso fluctúa significativamente o permanece alto durante esos períodos para reunir la información necesaria para el análisis de la causa raíz.
Además, ingrese periódicamente el comando show process load para determinar cuándo fluctúa la CPU para correlacionar los registros recolectados por el script de seguimiento dbperf.
Los registros recolectados por la ejecución del script dbperf de onstat -g ses 0 muestran las consultas activas que se emiten contra la base de datos UCCX. El uso elevado de la CPU en el proceso uccxoninit es típicamente el resultado de consultas complejas que toman mucho tiempo en ejecutarse. El objetivo es determinar las consultas que consumen más recursos, determinar el cliente de origen para esas consultas, deshabilitar las consultas del cliente para la resolución inmediata y optimizar las consultas de larga duración para la resolución permanente.
En los registros recolectados por el script dbperf, busque las consultas que probablemente causen altas fluctuaciones en la CPU o un alto consumo sostenido de la CPU por el proceso uccxoninit.
Consultas sospechosas:
Aquí se muestra un ejemplo con una consulta compleja que implica una tabla RR. HH. ejecutada como uccxhruser:
session #RSAM total used dynamic
id user tty pid hostname threads memory memory explain
435050 uccxhrus WBBOX 836 10.16.5. 1 90112 80712 off
...................
Current SQL statement :
SELECT x.resourceName, t.eventType, x.datetime, x.extension FROM ( SELECT
t1.resourceID, t1.resourceName, t1.extension, MAX(t2.eventDateTime) AS
datetime FROM Resource AS t1, AgentStateDetail AS t2 WHERE t2.agentID
= t1.resourceID AND t1.assignedTeamID = 21 and t1.active GROUP BY
t1.resourceID, t1.resourceName, t1.extension ) AS x, AgentStateDetail AS
t WHERE t.agentID = x.resourceID AND t.eventDateTime = x.datetime
ORDER BY x.resourceName
El ejemplo anterior muestra una consulta compleja, ingresada por uccxhruser originada en el WBBOX host que podría causar un impacto en el rendimiento de la base de datos de UCCX si se ingresó a menudo o se ingresó periódicamente antes de que la consulta anterior hubiera devuelto los resultados.
Aunque poco frecuente, el rendimiento de la base de datos UCCX también puede degradarse (y el uso de la CPU de la uccxoninit el proceso fluctúa o permanece alto), como resultado del proceso de purga integrado. El proceso de depuración está diseñado para eliminar datos de la configuración y de las tablas históricas de la base de datos UCCX a fin de mantener el tamaño de la base de datos. La depuración se puede programar en función del tamaño de la base de datos o del registro más antiguo contenido en la base de datos.
Cuando se ejecuta el proceso de depuración, los datos se eliminan con una consulta. No se realiza iterativamente en función de la cantidad de registros que se deben eliminar. Esto significa que si la depuración detecta una gran cantidad de datos que deben eliminarse, emite una sola consulta en un intento de eliminar estos datos.
La modificación de la programación de depuración o de los parámetros de la página UCCX AppAdmin para programar la depuración para eliminar una gran cantidad de datos puede hacer que esta consulta única, en la siguiente depuración programada, tarde una cantidad significativa de tiempo en completarse. Por lo tanto, impulsa el uso de la CPU de la instancia de la base de datos.
En el resultado del script dbperf, se puede ver la consulta de depuración. Debe ser la única consulta ingresada por el usuario uccxuser que llama al sp _purge procedimiento almacenado.
session #RSAM total used dynamic
id user tty pid hostname threads memory memory explain
5628 uccxuser - -1 CC-EXPR- 1 544768 523408 off
Current SQL statement in procedure db_cra:sp_purge
proc-counter 0x0x4ccf9260 opcode SQL
delete from contactroutingdetail
where (exists
(select 1
from contactcalldetail as ccdr
where (and (and (and (and (and (= contactroutingdetail.sessionid,
ccdr.sessionid), (= contactroutingdetail.nodeid, ccdr.nodeid)),
(= contactroutingdetail.sessionseqnum, ccdr.sessionseqnum)),
(= contactroutingdetail.profileid, ccdr.profileid)), (>= ccdr.enddatetime,
p_purgefrom)), (< ccdr.enddatetime, p_purgeto))));
Basados en la experiencia reciente de Cisco TAC y Cisco Development Engineering, estos son los problemas más frecuentes que causan una alta utilización de la CPU en el proceso uccxoninit: