La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento viene descritto il modo in cui le attività di Unified Contact Center Express (UCCX), che richiedono l'accesso al database UCCX locale, potrebbero risultare lente. Questo rallenta il caricamento delle pagine di AppAdmin, richiede tempi lunghi per l'esecuzione degli aggiornamenti di AppAdmin, comporta un ritardo nella risposta a una query dello sfondo, l'impossibilità per Workforce Manager di eseguire query sui dati UCCX e altri problemi di prestazioni e stabilità.
Il comando show process load, immesso nella CLI, mostra che la funzionalità uccxoninit utilizza una grande quantità di CPU. Il processo uccxoninit rappresenta l'istanza di database UCCX Informix in esecuzione sul server UCCX.
Contributo di Sridhar Chandrasekharan, Ryan LaFountain e Ben Wollak, Cisco TAC Engineers.
Il motore di database che supporta l'applicazione UCCX è Informix di IBM. Le informazioni di configurazione e cronologiche aggiunte alla pagina AppAdmin di UCCX e prodotte dall'applicazione UCCX vengono archiviate nell'istanza UCCX Informix.
L'applicazione UCCX mette a disposizione tre utenti che possono essere utilizzati per accedere direttamente al database UCCX al fine di estrarre informazioni per applicazioni di wallboard, gestione della qualità, gestione della forza lavoro e creazione di rapporti cronologici personalizzati.
Di seguito sono descritte le informazioni utente, le autorizzazioni di ogni utente e lo scopo designato di ogni utente:
lavagna - Questo utente dispone di autorizzazioni di selezione solo sulle tabelle di database in tempo reale che contengono snapshot di statistiche in tempo reale scritte dalla memoria del motore UCCX. Le autorizzazioni di selezione limitate alle tabelle RTCSQsSummary e RTICDStatistic indicano che l'utente di uccxwallboard deve essere utilizzato per eseguire frequentemente query sul database UCCX con query semplici e non complesse che devono essere originate da un'applicazione wallboard.
In UCCX release 10.0 e successive, immettere il comando utils uccx database dbperf start <totalHours> <interval> per avviare la traccia delle prestazioni sul database UCCX. L'argomento interval in questo comando determina la periodicità della raccolta di tracce e l'argomento totalHours determina la quantità totale di tempo in cui la traccia viene eseguita prima che venga disabilitata. Questi parametri sono facoltativi. Se non vengono specificati quando il comando viene eseguito, vengono utilizzati i valori predefiniti di 20 minuti e 10 ore.
Ad esempio, immettere il comando utils uccx database dbperf start 24 30 per abilitare la traccia delle prestazioni sul database e raccogliere dati sulle statistiche delle prestazioni ogni 30 minuti per 24 ore.
Le istruzioni per raccogliere i dati ottenuti dal comando CLI sono stampate nell'output del comando.
Dopo il valore totalHours specificato, la raccolta dei dati viene interrotta automaticamente. Per interrompere manualmente la raccolta dei dati, immettere il comando utils uccx database dbperf stop.
Se la versione UCCX è la 9.0(2) o precedente e utils uccx database dbperf non è disponibile, contattare il Technical Assistance Center (TAC) per ulteriore assistenza.
Lo script dbperf.sh associato all'ID bug Cisco CSCuc68413 verrà eseguito manualmente con l'accesso all'account del supporto remoto.
Quando si stabilisce quando avviare l'esecuzione dello script manualmente o tramite il comando CLI, la periodicità e il tempo totale, assicurarsi che la CPU utilizzata dal uccxoninit durante questi periodi, il processo varia in modo significativo o rimane elevato per raccogliere le informazioni necessarie per l'analisi della causa principale.
Inoltre, immettere periodicamente il comando show process load per determinare quando fluttua la CPU e correlare i log raccolti dallo script di traccia dbperf.
I log raccolti dall'esecuzione dello script dbperf di onstat -g ses 0 mostrano le query attive eseguite sul database UCCX. L'elevato livello di CPU nel processo uccxoninit è in genere il risultato di query complesse la cui esecuzione richiede molto tempo. L'obiettivo è determinare le query che utilizzano la maggior parte delle risorse, determinare il client di origine per tali query, disabilitare le query dal client per la risoluzione immediata e ottimizzare le query a esecuzione prolungata per la risoluzione permanente.
Nei log raccolti dallo script dbperf, cercare le query che molto probabilmente causano fluttuazioni elevate nella CPU o un consumo elevato di CPU sostenuto dal processo uccxoninit.
Query sospette:
Di seguito è riportato un esempio di query complessa che interessa una tabella HR eseguita come 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
Nell'esempio precedente viene illustrata una query complessa, immessa da uccxhruser e originata dalla WBBOX dell'host, che potrebbe influire sulle prestazioni del database UCCX se è stata immessa spesso o periodicamente prima che la query precedente restituisse dei risultati.
Sebbene rari, anche le prestazioni del database UCCX possono peggiorare (e l'utilizzo della CPU uccxoninit fluttua o rimane elevato), come risultato del processo di eliminazione incorporato. Il processo di eliminazione è progettato per eliminare i dati dalle tabelle di configurazione e cronologiche all'interno del database UCCX al fine di mantenere le dimensioni del database. È possibile pianificare la rimozione in base alle dimensioni del database o al record meno recente contenuto nel database.
Quando viene eseguito il processo di eliminazione, i dati vengono rimossi con una query. Questa operazione non viene eseguita in modo iterativo in base alla quantità di record da rimuovere. Ciò significa che se l'eliminazione rileva una grande quantità di dati da rimuovere, esegue una singola query nel tentativo di rimuovere tali dati.
La modifica della pianificazione o dei parametri di rimozione dalla pagina UCCX AppAdmin per pianificare l'eliminazione in modo da rimuovere una grande quantità di dati può causare il completamento di una singola query alla successiva eliminazione pianificata. Di conseguenza, aumenta l'utilizzo della CPU dell'istanza di database.
Nell'output dello script dbperf, è possibile visualizzare la query di eliminazione. Deve essere l'unica query immessa dall'utente uccxuser che chiama la stored procedure sp_purge.
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))));
In base alla recente esperienza di Cisco TAC e Cisco Development Engineering, si tratta dei problemi più comuni che causano un elevato utilizzo della CPU nel processo uccxoninit: