Zum Forum springen
hm2, Performance-Pr...
 
Benachrichtigungen
Alles löschen

hm2, Performance-Probleme bis Freeze, Lösung!

10 Beiträge
4 Benutzer
0 Reactions
1,561 Ansichten
Santalino2
Beigetreten: 08.06.2007
BlackMember

Bei wem hm2 nach Start immer langsamer wird (z. B. bei Popups...), bis zu kompletten Freeze-Zustand, den man meist nur noch über Task-Manager beenden kann, der kann folgendes versuchen:

a) Sein Windows-Ereignisprotokoll anschauen (unter Systemsteuerung, System-und-Sicherheit, Verwaltung oder Windows-Taste + R drücken und dort "eventvwr" eingeben). Wenn dort nach jeder Session über tausend Einträge von hm2 mit irgendwelchen Postgre-Fehler stehen, dann ist das die Ursache für Perfomance-Verlust bis Freeze (Windows bzw. das Zusammenspiel von hm2, postgre und Windows-Ereignis/Protokollierungssystem ist anscheinend nicht darauf ausgelegt, das ein Programm hier in kurzer Zeit tausende Fehlermeldungen reinballert...). Wenn das bei euch nicht der Fall ist, dann könnt ihr hier abbrechen, dann ists irgendwas anders.

b) Die Windows-Protokollierung abschalten (vor Änderungen sich die alten Registry-Einträge merken/aufschreiben um es dann ggf. wenns nicht klappt wieder auf Orginal-Zustand zurücksetzen zu können):
Link1
Link2

Seit ich das gemacht habe, keinen einzigen Freeze mehr gehabt auf langsamem Notebook was älter als 5 Jahre ist und nur 4 GB Speicher hat. Zusätzlich auch keine Verlangsamung mehr gespührt, sprich Popups gehen nach 8 Stunden spielen jetzt genauso schnell auf wie am Anfang.

c) Zusätzliche optionale Punkte (die bei mir so eingestellt sind, vermutlich ist aber Punkt b) bereits ausreichend): Dienste die die Festplatte beanspruchen (typisch für den Freeze ist ja immer das Festplatte zu 100% ausgelastet ist, sprich das ist der Engpass) ausschalten, also sowas wie Datei-Index-Erstellung, Such-Dienst, Ordner-Überwachungsdienst, Defragmentierung usw. und zusätzlich im Virenprogramm einstellen, dass in den Pokerzeiten keine vollständige Laufwerks-Virussuche usw. erfolgt und optional kann man auch noch die Windows-Auslagerungsdatei auf 0 stellen. Analog wie zuvor, sich alle Änderungen notieren, um es falls es doch unerwartete andere Probleme auslösen sollte, Rückgängig machen zu können.

Disclaimer: Alles ohne Garantie und gibt ja auch x verschiedene Systeme und Betriebssystem-Versionen usw. bei mir mit Win 8.1 hats jedenfalls so funktioniert. Wenns nicht klappt, dann halt die Registry Änderungen wieder rückgängig machen und dann habt ihr wieder den gleichen Zustand wie vorher.

Ursprünglicher erster Post zu diesem Thema:

Spoiler

Ich hatte ewig lange diese Probleme, dass hm2 so nach 30-120 Minuten (je nachdem wie und was man gespielt hat, Masstabling oder harte Table-Selection mit wenig Hands/Stunde) gefreezed ist. Zuletzt habe ich so 10 mal am Tag hm2 über Task-Manager beenden und neu starten müssen. Schon überlegt, diesen ganzen Kack einfach zu löschen, weils mich genervt und z. T. auch Geld gekostet hat, wenn freeze gerade in wichtiger Hand passiert und man dadurch Aufmerksamkeit und Hud verliert und pt4 zu installieren. Dann aber doch noch bisschen rumgeforscht (weil pt4 neu zu installieren und alles einrichten einschl. hud und x tausende Hände importieren usw. dauert bestimmt auch ewig) und ich denke ich habe jetzt Lösung gefunden und evtl. hilfts ja wem.

Was habe ich geändert:
a) Win-Auslagerungsdatei auf Null reduziert (vermutich ist das aber für die Lösung nicht entscheidend, war aber zu faul dafür noch mal Gegentest zu machen um es genau zu verfizieren, außerdem hats mich auch generell genervt dass Windows laufend z. T. was auslagert und auf Festplatte rumwurstelt obwohl scheinbar noch genug freier Speicher verfügbar war...).

b) Internet-Explorer, "automatisch Cookievearbeitung außer Kraft gesetzt" (vermutlich nicht entscheidend, aber kein Gegentest mehr gemacht...).

c) Die Windows-Ordner-Überwachungsfunktion, Protokollierungen und das Ereignisprotokoll abgeschaltet (das ist vermutlich das entscheidende).

Danach 10 Stunden gespielt (Stars Zoom) und keinen einzigen Freeze mehr gehabt (auf altem Notebook, älter als 5 Jahre, nur mit 4 GB Ram, zusätzlich war Starshelper, eigenes ahk-Script und zeitweise Internet-explorer offen). Wie kam ich auf die Lösung:

Spoiler

Mir ist aufgefallen, dass obwohl kaum was los war und ich noch in der Poker-Startphase war, bereits die Festplatte z. T. total mit 100% ausgelastet war. Dann im Task und Rescourcen-Manager geschaut wer das verursacht und dabei auf die Windows-Protokolle gestoßen. Dann Ereignisprotokoll angeschaut und gesehen, dass das von hm2 zugemüllt wird (postgre-Fehlermeldung, irgendwas kann nicht angefügt werden, weil es den Spieler bereits gibt). Ich denke dieser Fehler ist den hm2-Entwickler bereits bekannt, nur sie dachten, ok das betrifft hm2 nicht direkt und was solls wenn in irgendeinem Windows-Protokoll paar Einträge entstehen, bugfix lohnt sich hier nicht und die Hände die in Datenbank gelangen sind ja alle korrekt, weil es z. B. durch andere Funktion irgendwie abgefangen wird.

Nur Problem ist offensichtlich, wenn hier sinnlos tausende von Fehlern generiert werden, dass Windows damit nicht klar kommt und dann irgendwann Puffer oder sonst irgendwas überläuft und Windows dann scheinbar erst mal beschäftigt ist das zu verarbeiten und dann alles freezed. Das war übrigens früher auch eine Hackerangriffs-Methode, irgendwelche harmlosen kleine bescheuerte Fehler auszulösen und irgendwann war dann irgendwas vollgelaufen (weil halt keiner damit gerechnet hat, dass hier einer absichtlich z. B. paar Millionen kleine Fehler auslöst und die Systeme darauf nicht vorbereitet waren) und so wurden dann Abstürze verursacht.

PS: Die Windows-Protokollierung/Überwachung abzuschalten hat natürlich theoretisch auch gewisse Nachteile, weil dort dann z. B. Fehler/Probleme die von anderen Programmen verursacht werden nicht mehr sichtbar sind...nur in der Praxis spielts wohl keine sooo große Rolle, bzw. jeder kann ja mal für sich überlegen, wie oft er diese Protokolle bisher genutzt hat und dann entscheiden ob er das behalten möchte oder nicht.

Edit: Punkt b) gerade wieder aktiviert, weil man sonst hier nix posten kann (Forums-Fehlermeldung: Zeitüberschreitung...)


Antwort
Zitat
9 Antworten
netsrak
Beigetreten: 11.03.2006
Elite Grinder

Danke für die ausführliche Beschreibung, kannst du noch erklären wie du die Protokollierung ausgeschaltet hast?


Antwort
Zitat
Santalino2 Themenstarter
Santalino2
Beigetreten: 08.06.2007
BlackMember

Muß man in Registry machen, habe die Infos aus diesen Links verwendet.

Link1
Link2

Zusätzlich sind bei mir noch Dienste wie Search-, Datei-Indizes-Erstellen, Defragementierung usw. alle deaktiviert, also im Grunde alles was irgendwie die Festplatte beanspruchen kann (die Dienste waren aber auch schon vorher alle deaktiviert, also sprich hier habe ich nix geändert...).


Antwort
Zitat
Kick4Ass
Beigetreten: 04.05.2007
Oldschool Grinder

Moin,

in der Postgresql.conf kann man einige Werte auch noch anpassen.

LG


Antwort
Zitat
Santalino2 Themenstarter
Santalino2
Beigetreten: 08.06.2007
BlackMember

@Kick4Ass
Kenne mich mit postgre nicht aus. Kann man dort einstellen, dass keine Fehlerprotokollierung in Windows erfolgen soll? Ansonsten, du bist doch auch der pt4-Experte oder? Ich vermute mal in pt4 ist das anders/besser gelöst und pt4 ballert nicht die Ereignisprotokolle voll, oder?

@Allgemein
Anfangspost noch mal überarbeitet, so dass es besser lesbar und hoffentlich hilfreicher ist. Ansonsten heute auch wieder 7k Hände gespielt und keinen einzigen Freeze gehabt, von daher bin ich jetzt wirklich ziemlich sicher dass das die Ursache war. Zusätzlich noch die Werte im Task-Manager bisschen beobachtet. Also Datenträger-Auslastung war relativ konstant unter 10%, CPU-Auslastung hat bisschen geschwankt aber im Durchschnitt so zwischen 10 und 20% und dieser Wert war dann aber auch über die 10 Stunden Spielzeit konstant, nur die Speicherauslastung ist leicht gestiegen, am Anfang wars bei ca. 49%, nach 10 Stunden dann bei ca. 65% (wobei ich dadurch keine Performance-Verluste gespürt habe, sprich Popups usw. sind gefühlt genauso schnell aufgegangen wie am Anfang).


Antwort
Zitat
netsrak
Beigetreten: 11.03.2006
Elite Grinder

Sowohl HM als auch PT benutzen Postgresql als Datenbank, die Einstellungen sind also für beide gleich.
Es kann nur sein, dass im HM bzw. Notecaddy andere Befehle abgesetzt werden.
Ich habe übrigens keinerlei Postgresql Fehler in meinem Ereignisprotokoll, habe aber auch einen Linux Postgresql Server. Das da schon mal Fehler protokolliert werden ist aber normal, das sollten nur nicht soviele sein. Evtl. ist auch deine Datenbank kaputt?


Antwort
Zitat
Santalino2 Themenstarter
Santalino2
Beigetreten: 08.06.2007
BlackMember

Als ich das letzte mal geschaut hatte vorm deaktiveren (jetzt kann ich die Meldungen nicht mehr sehen), hatte ich glaube ich nach einer Session um die 2000 Postgre-Fehlermeldungen (also alle paar Sekunden wurde da neuer Eintrag erzeugt...).

Und Datenbank kaputt, evtl. Definitionssache was man darunter versteht, nur eine klassische futsche Datenbank wo einfach Teile beschädigt/korrupt sind und Zugriffe nicht mehr klappen usw. ists jedenfalls nicht (alle Hände sind in der Datenbank, Zugriff klappt und man kann auch alles auswerten). Zusätzlich wurde Datenbank dieses Jahr neu angelegt und den Freeze-Fehler hatte ich grundsätzlicih immer, auch wenn ich andere Datenbanken ausgewertet habe und zusätzlich habe ich an der Datenbank selbst ja jetzt auch nix verändert, sondern nur die Windows-Protokolle deaktiviert und jetzt funktionierts ja.

Außerdem wird der Fehler ja scheinbar erzeugt, indem falsche sql-Anweisungen übermittelt werden, also sowas wie Spielername in Tabelle anfügen, was aber anscheinend nicht klappt, weil es den Namen halt dort schon gibt und weil evtl. Schlüssel drauf liegt und hier keine Dubletten erlaubt sind (evtl. ists auch irgendwie ein Fehler mit der Autoimport-Funktion oder evtl. wurde es so bewußt eingesetzt um sich im Vorfeld richtige Dublettenprüfung zu sparen und so mit diesem "Trick" Doppelimporte der gleichen Hand zu vermeiden...Edit/Zusatz: Oder es gibt evtl. Spielernamen die irgendwelchen spezielle Sonderzeichen im Nick enthalten und die deshalb nicht importiert und in Endloss-Schleife die dann laufend Fehler auslöst gefangen bleiben?!....ok, sind alles nur Vermutungen, ich habs nicht programmiert^^).

Jedenfalls, da es auch relativ viele Leute gibt die da Performance- und Freezeprobleme mit hm2 haben und wenn man die o. g. Punkte zusammenfasst, ists halt eher unwahrscheinlich, dass es nur an meiner beschädigten postgre-Datenbank liegt (die z. B. durch defekte Festplatten-Sektoren verursacht wurde), sondern es scheint ein generelles Problem zu sein was anscheinend durch suboptimale hm2-sql-Anweisungen ausgelöst wird (Edit: Und das ist keine Vermutung, sondern ich habe klar die Fehlermeldung gesehen, Spielername kann nicht angefügt werden, weil er bereits existiert).


Antwort
Zitat
netsrak
Beigetreten: 11.03.2006
Elite Grinder

Ich kenne diese Meldungen, habe sie allerdings noch nie in der Vielzahl gesehen.


Antwort
Zitat
Santalino2 Themenstarter
Santalino2
Beigetreten: 08.06.2007
BlackMember

Ist bei mir jedenfalls jetzt ein Unterschied wie Tag und Nacht. Auch das eigentliche hm2-Programm wenn keine Datenbank-Zugriffe erfolgen, ist jetzt viel schneller und vor allem bleibt es auch konstant schnell. Früher hats z. B. immer x Sekunden gedauert bis das Popup nach anklicken aufging (und je länger hm2 bereits lief, desto langsamer wurde es noch), wo man die Filter für Auswertungen setzen kann. Jetzt klicke ich es an und es geht fast instant auf.

Und finde es halt schon krass, es haben sich ja auch x Leute für relativ viel Geld extra neue Monster-PCs gekauft, nur damit sie vernünftig pokern können. Ich habe wie gesagt altes Notebook (älter als 5 Jahre, Intel Core2 I3-Prozessor, aktuelle Prozessoren sind x mal so schnell...) und CPU-Auslastung ist bei mir zwischen 10 und 20%, also sprich im Grunde ists damit jetzt sogar noch unterfordert und selbst noch langsamere CPUs würden hier locker ausreichen.

Ich erkläre es mir so, dass Windows vermutlich die Ausführung vom fehlerauslösenden Programm unterbricht, bis das alles in den Protokollen usw. verarbeitet wurde und weil gleichzeitig sehr viele Programme, Dienste usw. überwacht werden und wenn zusätzlich evtl. die Festplatte noch mit anderen Zeugs beschäftigt ist, dann kanns hier zu Überschneidungen und zusätzlichen Verlangsamungen kommen. Und zusätzlich scheint Windows noch irgendwas anders zu machen, wenn in kurzer Zeit relativ viele Fehlermeldungen eintrudeln (evtl. wird dann vielleicht sogar bewußt die Verarbeitung nach hinten priorisiert, quasi als Vorbeugung um den Schaden was ein potentielles Amok-Programm produziert zu reduzieren^^).

PS: Ok, war jetzt erst mal mein letzter Post zu diesem Thema, kostet mich zu viel Zeit, grinde aktuell auch so 10 Stunden/Tag und muß daher mit der Rest-Freizeit sorgfältiger umgehen und wollte ja auch nur kurz mein Wissen mit der Community teilen und so evtl. anderen mit ähnlichen Problemen eine Möglichkeit aufzeigen...


Antwort
Zitat
taktloss83
Beigetreten: 03.08.2009
BlackMember

link 1 funktioniert leider nicht mehr.
link 2 habe ich gemacht, bringt aber nichts. Es werden immer noch hunderte/tausende Fehlerberichte pro session erstellt.


Antwort
Zitat
Teilen: