Hauptmenü

Hohe CPU Last durch Daemon

Begonnen von f.goecking, 10.01.2020 14:07:12

⏪ vorheriges - nächstes ⏩

f.goecking

Hallo zusammen,
wir haben festgestellt, dass der KIX-Daemon zu einer sehr hohen CPU-Last in unserem System führt. Um genau zu sein sind es durchgehend 100% Auslastung. Unsere aktuelle Konfiguration besteht aus einer 2-Kern CPU mit 4GB Arbeitsspeicher. KIX Version ist "KIX 17.9.1-0". Wir fragen 3 Mail Accounts ab und haben einen Generic Agent Job, der alle 15 Minuten läuft. Eine Deaktivierung des Agents brachte keine Hilfe. Wenn ich den Daemon stoppe (Ich muss ihn killen, über kix.Daemon.pl stop reagiert er nicht) und wieder starte ist die Auslastung direkt wieder bei 100%. Hat jemand eine Idee?

Sebastian

Wie ist denn eure RAM-Auslastung? Weil unser Server belegt 12/16GB.

f.goecking

Die RAM Auslastung ist in Ordnung, hier liegen wir zwischen 2GB und 3GB, im Schnitt aber bei etwa 2,4GB.

Richard Leis

Hallo f.goecking,

wie groß ist denn euer System in etwa? Also, wieviele Tickets enthält es? (Das kannst Du im Admin-Bereich im Support Data Collector sehen)
Der Daemon ist zusätzlich zur Ausführung von GenericAgents auch für alle anderen zeitlich gesteuerten Vorgänge zuständig. Also auch für Statusänderungen, Ticket-Benachrichtigungen und so weiter. Daher kann es sein, dass er bei einer entsprechenden Ticketanzahl lange beschäftigt ist. Solange  der Daemon Dinge zu erledigen hat, blockiert er eine CPU.

Zur Analyse kannst Du Dir eine Zusammenfassung über die laufenden Daemon-Jobs im Terminal ausgeben lassen:

  • sudo -u <WebUser> /opt/kix/bin/kix.Console.pl Maint::Daemon::Summary
Das gibt Dir aus, welche Jobs zuletzt liefen, wie lange die Ausführung gedauert hat und auch, ob es Probleme bei der Ausführung gab.
Wenn Dort auffällige Ausführungszeiten zu sehen sind, sollte vielleicht das System etwas mehr Resourcen bekommen.

Viele Grüße

Richard

f.goecking

Hi Richard,
vielen Dank für deine Antwort. Das hat mir schon mal sehr weiter geholfen. Wir haben aktuell etwa 550.000 Tickets im System, davon sind etwa 36.000 offen. Ich bin jetzt schon hingegangen und habe die Archivierung aktiviert und den IndexAccelerator auf StaticDb umgestellt. Ich hoffe das hilft uns schon einmal.


Die Zusammenfassung der Daemon-Jobs zeigt eine sehr lange Liste von Unhandled Worker Tasks. Ich schätze mal das sind die Aufgaben, die er noch abarbeiten muss. Vermutlich dauern die Prozesse aufgrund der hohen Anzahl an Tickets zu lange und er plant schon wieder eine neue Aufgabe ehe die alte beendet wurde. Hauptsächlich sind das bei uns Aufgaben mit dem Namen LinkedTicketPerson-xxxx-Customer-c...
Allerdings weiß ich nicht genau was sich dahinter verbirgt. Weißt du denn ob der Daemon auch archivierte Tickets anfasst (also bei Tasks vom KIX, nicht die Generic Tasks)? Wenn nicht müsste das Archivieren ja helfen. Ansonsten laufen die Tasks ohne Fehler durch, brauchen aber teilweise recht lange (CoreCacheCleanup z.B. 2h, MailFetch für 4 Accounts 30 Min).


Viele Grüße
Felix

Richard Leis

#5
Hallo Felix,

das Archivieren von Tickets und der IndexAccelerator sind nur gedacht, um die Ticketsuche zu beschleunigen.
Archivierte Tickets werden bei einer normalen Ticketsuche nicht mehr durchsucht, wenn man es nicht explizit anders auswählt.
Der IndexAccelerator schreibt einen Suchindex für die Volltextsuche, der schneller durchsuchbar ist.
Das wird also schon etwas Last vom System nehmen, da natürlich jede durchgeführte Ticketsuche auch zur Auslastung beiträgt.

Aber bei 550.000 Tickets wirst Du um eine Resourcenerhöhung nicht herum kommen.
Ein paar Kerne mehr würden die Tasks des Daemon beschleunigen, weil dann mehr Tasks parallel abgearbeitet werden können.
Außerdem könntest Du KIX auf memcached umstellen. Das verbessert die RAM-Nutzung.
Eine Anleitung dafür findest Du hier:

https://forum.kixdesk.com/index.php?topic=306.msg1071#msg1071

Aber ich denke, dass zusätzlich auch eine Erhöhung des RAM notwendig sein wird. Aber das könntest Du ja testen, nachdem die oben genannten Maßnahmen durchgeführt wurden.

Viele Grüße

Richard