In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
In diesem Dokument wird beschrieben, wie Aktivitäten von Unified Contact Center Express (UCCX), die lokalen UCCX-Datenbankzugriff erfordern, langsam durchgeführt werden können. Dies bewirkt, dass die AppAdmin-Seiten langsam geladen werden, dass Aktualisierungen an AppAdmin eine lange Anwendungsverzögerung erfordern, dass die Antwort auf eine Wallboard-Abfrage verzögert wird, dass Workforce Manager UCCX-Daten nicht abfragen kann und andere Leistungs- und Stabilitätsprobleme auftreten.
Der Befehl show process load, der in der CLI eingegeben wurde, zeigt, dass der Uccxoninit eine große CPU-Menge verbraucht. Der uccxoninit-Prozess stellt die UCCX Informix-Datenbankinstanz dar, die auf dem UCCX-Server ausgeführt wird.
Unterstützt von Sridhar Chandrasekharan, Ryan LaFountain und Ben Wollak, Cisco TAC Engineers.
Die Datenbank-Engine, die die UCCX-Anwendung unterstützt, ist IBM Informix. Konfigurations- und Verlaufsinformationen, die der AppAdmin-Seite von UCCX hinzugefügt und von der UCCX-Anwendung erstellt werden, werden in der UCCXInformix-Instanz gespeichert.
Die UCCX-Anwendung stellt drei Benutzer bereit, die zum direkten Zugriff auf die UCCX-Datenbank verwendet werden können, um Informationen für die Zwecke von Wallboard-Anwendungen, Qualitätsmanagement, Workforce Management und benutzerdefinierten Verlaufsberichten zu extrahieren.
Die Benutzerinformationen, die Berechtigungen der einzelnen Benutzer und der Zweck der einzelnen Benutzer werden hier beschrieben:
uccxwallonisch - Dieser Benutzer verfügt nur über die Berechtigungen für Echtzeit-Datenbanktabellen, die Snapshots von Echtzeitstatistiken enthalten, die aus dem Speicher der UCCX Engine geschrieben wurden. Die auf die Tabellen RTCSQsSummary und RTICDStatistics beschränkten Auswahlberechtigungen bedeuten, dass der Uccxwallboard-Benutzer dazu verwendet werden sollte, die UCCX-Datenbank häufig mit einfachen, nicht komplexen Abfragen abzufragen, die von einer Wallboard-Anwendung stammen sollen.
Geben Sie in UCCX Version 10.0 und höher den Befehl utils uccx database dbperf start <totalHours> <interval> ein, um mit der Performance-Ablaufverfolgung in der UCCX-Datenbank zu beginnen. Das interval-Argument in diesem Befehl bestimmt die Periodizität der Ablaufverfolgungsauflistung, und das totalHours-Argument bestimmt die Gesamtdauer, die die Ablaufverfolgung ausführt, bevor sie deaktiviert wird. Diese Parameter sind optional. Wenn sie bei Ausführung des Befehls nicht angegeben werden, werden die Standardwerte von 20 Minuten und 10 Stunden verwendet.
Geben Sie z. B. den Befehl utils uccx database dbperf start 24 30 ein, um die Performance-Ablaufverfolgung in der Datenbank zu aktivieren und alle 30 Minuten Daten über Leistungsstatistiken für 24 Stunden zu erfassen.
In der Befehlsausgabe werden Anweisungen zum Erfassen der vom CLI-Befehl erhaltenen Daten ausgegeben.
Nach dem angegebenen totalHours wird die Datenerfassung automatisch beendet. Um die Datenerfassung manuell zu beenden, geben Sie den Befehl utils uccx database dbperf stop ein.
Wenn die UCCX-Version Version Version 9.0(2) oder früher ist und die utils uccx datenbank dbperf nicht verfügbar ist, wenden Sie sich an das Technical Assistance Center (TAC), um weitere Unterstützung zu erhalten.
Das TAC führt das der Cisco Bug-ID CSCuc68413 beigefügte dbperf.sh-Skript manuell mit Remote Support Account-Zugriff aus.
Wenn Sie festlegen, wann die Skriptausführung entweder manuell oder über den CLI-Befehl, die Periodizität und die Gesamtdauer gestartet werden soll, stellen Sie sicher, dass die vom Uccxoninit Prozesse schwanken erheblich oder bleiben in diesen Zeiträumen hoch, um die erforderlichen Informationen für die Ursachenanalyse zu sammeln.
Zusätzlich geben Sie in regelmäßigen Abständen den Befehl show process load ein, um zu bestimmen, wann die CPU schwankt, um die vom dbperf-Ablaufverfolgungsskript erfassten Protokolle zu korrelieren.
Die Protokolle, die durch die Ausführung von onstat -g ses 0 durch das dbperf-Skript gesammelt wurden, zeigen aktive Abfragen an, die in der UCCX-Datenbank ausgegeben werden. Hohe CPU auf dem uccxoninit-Prozess ist in der Regel das Ergebnis komplexer Abfragen, deren Ausführung lange Zeit in Anspruch nimmt. Das Ziel besteht darin, die Abfragen zu bestimmen, die die meisten Ressourcen nutzen, den Quellclient für diese Abfragen zu bestimmen, die Abfragen des Clients zur sofortigen Auflösung zu deaktivieren und die langlaufenden Abfragen zur dauerhaften Auflösung zu optimieren.
Suchen Sie in den vom dbperf-Skript gesammelten Protokollen nach Abfragen, die höchstwahrscheinlich hohe CPU-Schwankungen verursachen oder eine anhaltend hohe CPU-Nutzung durch den uccxoninit-Prozess verursachen.
Verdächtige Abfragen:
Ein Beispiel mit einer komplexen Abfrage, die eine als uccxhruser ausgeführte HR-Tabelle umfasst, ist hier dargestellt:
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
Das obige Beispiel zeigt eine komplexe Abfrage, die von uccxhruser aus der WBBOX-Host-WBBOX eingegeben wird und die Leistungseinbußen für die UCCX-Datenbank verursachen kann, wenn sie häufig eingegeben wurde oder regelmäßig eingegeben wurde, bevor die vorherige Abfrage Ergebnisse zurückgegeben hatte.
Die UCCX-Datenbankleistung ist zwar selten, kann jedoch auch die CPU-Auslastung des Uccxoninit Prozess schwankt oder bleibt hoch), aufgrund des integrierten Löschprozesses. Der Löschprozess dient zum Löschen von Daten aus der Konfiguration und den Verlaufstabellen in der UCCX-Datenbank, um die Größe der Datenbank beizubehalten. Die Löschung kann basierend auf der Größe der Datenbank oder dem ältesten Datensatz in der Datenbank geplant werden.
Beim Ausführen des Löschvorgangs werden die Daten mit einer Abfrage entfernt. Der Vorgang wird basierend auf der Anzahl der zu entfernenden Datensätze nicht iterativ durchgeführt. Das bedeutet, wenn die Löschung eine große Datenmenge erkennt, die entfernt werden muss, wird eine einzige Abfrage ausgegeben, um diese Daten zu entfernen.
Die Änderung des Zurücksetzungszeitplans oder der Parameter auf der UCCXAppAdmin-Seite, um die Löschung großer Datenmengen zu planen, kann dazu führen, dass diese einzelne Abfrage bei der nächsten planmäßigen Löschung eine beträchtliche Zeitspanne in Anspruch nimmt. Daher wird die CPU-Auslastung der Datenbankinstanz erhöht.
In der Ausgabe des dbperf-Skripts wird die Löschabfrage angezeigt. Dabei sollte es sich um die einzige Abfrage handeln, die vom Benutzer uccxuser eingegeben wurde, der die gespeicherte sp_purge-Prozedur aufruft.
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))));
Basierend auf den Erfahrungen des Cisco TAC und der Cisco Development Engineering sind dies die am häufigsten auftretenden Probleme, die eine hohe CPU-Auslastung im uccxoninit-Prozess verursachen: