This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Fehlermeldung in der OpenSim-Konsole
#1
Fehlermeldung in der OpenSim-Konsole:

[WATCHDOG]: Timeout detected for thread "Heartbeat-(Regionsname)". ThreadState=WaitSleepJoin. Last tick was 20892ms ago.

Warum hat die Region einen Herzinfarkt?

Was sind die möglichen Ursachen und Auslöser?

Wenn jemand Hinweise, Tipps und Informationen für alle hat - einfach posten.

Danke
All done!
Zitieren
#2
Hallo Lukas,

ALLGEMEIN:
Watchdog Timer dienen generell dazu Prozesse zu überwachen ob die noch am Leben sind.
Dazu werden periodische Lebenszeichen and die übergeodnete Instanz oder eine Überwachungssystem gesendet.
Fällt die Meldung aus oder dauert zu lange, dann kann eine vorab definierte Aktion ausgelöst werden.
Das kann ein Protokolleintrag sein, eine Auslösung eines SNMP Traps für ein Alarmsystem, eine (Mail) Meldung an den Admistrator, oder auch ein automatischer Prozessneustart.

IN OPENSIM:
In Opensim erfolgt beim Start einer Region/Sim eine Anmeldung an der Robust Instanz.
Diese listet dann die Regionen/Sims als aktiv, was unter anderem die Gridkarte aktualisiert, und vielfachen Datenaustausch initialisiert.

Danach sendet jede Region Lebenszeichen an die Robust, mehr oder weniger periodisch- die Heartbeats.
Diese Protokolliert wie lange die Abstände zwischen Meldungen waren in der Opensim.log- wo wohl auch dein Eintrag herstammt.

Ziel ist in diesem Falle wohl dem gewisenhaften Admin, der die Logs auswertet, klar zu machen das er Performance Probleme hat.
Andere Auswirkungen sind mir in Opensim (noch) nicht bekannt.

Für den Admin ist daher interessant was diese Performance Einbrüche bewirkt, um sie zu beseitigen.
Nun zunächst ist unstrittig das in allen Fällen die SIM die Heartbeat Meldung nicht rechtzeitig genug absetzt, weil sie massiv Stress hat.
(Netzwerk Stress klammer ich mal hier als Thema aus, kann aber in der Realität sehr wohl die Ursache sein)

Als Ursachen für den Stress sind mir folgende Dinge bisher aufgefallen:
1. Es werden neue Karten für die Sims erstellt. Die Karten Erstellung ist sehr I/O Last intensiv, was man insbesondere bei Systemen mit Festplatten merkt.
Es werden (fast) alle Objekte einer Sim angefordert und für die Berechnung einbezogen. Das macht soviel Aufwand wie ein Sim Backup.

2. Es laufen auf der Sim Prozesse (Scripte, Uploads, Fehler, ...) ab die die Ansprechbarkeit der Sim massiv beeinträchtgen.
Als Ursachen zu 2. habe ich bereits folgendes erlebt:
- zu hohe Scriptlast
- hängende Mesh Uploads die nicht fertig werden
- missglückte Scripte die ausser Kontrolle geraten. (-> unbedingt scripten auf einer Sandbox oder leeren Sim)
- Probleme mit "mutierten" herrenlos gewordenen NPCs zu denen die Kontrolle verlorenging (Typisch bei Scriptreset eines NPC Controllers)
- Server CPU im Anschlag
- Probleme mit physischen Fahrzeugen die an der Simgrenze "hängen"

3. Bezieht sich auf Virtuelle Maschinen, wenn das Grid nicht auf "echter" dedizierter Hardwäre läuft.
Bei VMs wird Resourcen Management betrieben. Mehrere User teilen sich Harware Resourcen - auch unter der Prämisse das der Leistungs Bedarf nicht gleichzeitig erfolgt. Um die Überbuchung zu ermöglichen wird Kunden die aktuell wenig Resourcen ziehen Leistung dynamisch entzogen.
Bei der CPU erfolgt dies im Zeitscheiben Verfahren, was dazu führen kann das die tatsächliche temporäre Leistung nicht der Erwarteten entspricht.
Und wie bei allen Resorcen Engpässen ist Verzögerung die Folge.

4. Es werden Backups gefahren (Datenbank Backup, OAR Erstellung, IAR Erstellung)


Die Liste erhebt keinen Anspruch auf Vollständigkeit.


ABHILFEN:

zu 1. ist die Abhilfe einfach. in der Opensim.INI die automatische periodische Kartengenerierung abschalten.
Sowas braucht es nur am Anfang solange Terrain geformt wird, danach ist das obsolet.

Man findet die in der Opensim.ini unter:

[Map]
GenerateMaptiles = false

setzen behebt das Problem nach eine Sim Neustart.
Hat man später viel Landscaping gemacht setzt man den Wert auf true und startet dei Sim für ca 30 Minuten. Man sieht wann sich die Karte geändert hat.
Danach sim runter fahren, GenerateMaptiles = false setzten und Sim neu starten.
Mans sollte alles Sims auf Map Erstellung in den jeweiligen opensim.inis testen,
meiner Beobachtung nach werden auch andere Sims abgebremst die gar nicht selber gerade die Maps erstellen.
Übrigens: das Erstellen vom Maps merkt man auf der Sim- die Avas driften zeitweilig.


Abhilfe zu 2. Ist Fall Abhängig. Etliche Probleme verschwinden wenn man die Sim regelmäßig neu startet.
Als Indiz dient mir die Ram Belegung einer Sim. Diese sieht man im Taskmanager von Windows oder einem ResourcenTools.
Fährt man die Sim neu herauf sieht man den Grund Speicherverbrauch.

Meiner Erfahrung nach ist die Sim Performant wenn sie nach Neustart nicht viel mehr als 1GByte braucht.
Nach einiger Laufzeit werden daraus 2GByte Verbrauch. Dann tut Neustart wieder gut.
Hat man deutlich größere Zahlen sollte man ein Teilen der Sim auf 2 Instanzen in Betracht ziehen.
Aber wie gesagt das sind meine Erfahrungen die meinem Anspruch gerecht werden.

Geht der Speicherverbrauch der Sim hoch, steigen TP Probleme, es ruckt manchmlat,... etc
Ebenso muss man die CPU Performance im Auge behalten.
Wir wissen ja das jede Instanz nur einen Core nutzen kann. Was die CPU Last hochtreibt sind vor allem Scripte und bewegte Objekte.

Avatare und NPCs haben auf meinem Server hingegen keine messbare Auswirkung. Meine Sims haben nur hoch optimierte eigene Scripte, und laufen (gemessen) bei 50 NPCs unter 10% CPU Core Last.


Abhilfe zu 3. Auf dedizierte Hardware umsteigen.

Abhilfe zu 4. Backups automatisiert fahren wenn das Grid kaum/keine Besucher hat
Zitieren
#3
Hallo Tron Mcp,

einfach und verständlich erklärt. Ja, mit Sicherheit können viele Leute aus diesem Fachwissen lernen.

Ein Pc ist eben auch nur ein Servicetechniker! Zu viele Serviceaufträge für eine Person führen leicht zum Herzstillstand.

Danke
Yes
All done!
Zitieren
#4
Gerne!
Zitieren
#5
Als Benutzer eines ausgezeichneten Manager Tools kann ich immer recht wenig Feedback zu Fragen oder Erklärungen geben.
Aber ich lerne gerne und dieser Beitrag war sogar einem wenig IT affinen Menschen wie mir anschaulich. Vielen Dank dafür.

Übrigens.
Zu Punkt 1 : Kann bei uns individuell eingestellt und automatisiert werden.
Zu Punkt 2 : Kann ebenfalls automatisiert werden. Ab einem definierten Ram Verbrauch wird die rebellierende Sim automatisch neu gestartet . Passiert das häufiger, kann man mit dem Sim User reden und anhand der Script Lists das Problem eingrenzen.
Punkt 3 ist eh nicht anders machbar bei einem so zartem Grid wie unserem :-)
Punkt 4 . Ist auch ein definierter automatisierter Prozess und wird in der Nacht durchgeführt. Wenn eh kaum Traffic ist .
Viele Grüße
Rudi
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste