Home / Community / Forum / Poker Forum / Poker Ausbildung /

Pimp your Holdem Manager

Alt
Standard
Pimp your Holdem Manager - 01-07-2009, 14:17
(#1)
Gelöschter Benutzer
Damit Holdem Manager auch nach ein paar Millionen gespielter Hände noch Spaß macht, einfach mal ein paar Tips und Tricks, wenn das System lahmen sollte.
Da die Datenbankbasis identisch ist, gelten die meisten Hinweise natürlich auch für die PT3-user.

1. Erstinstallation

Entgegen meiner deutschen Installationsanleitung- zieht euch die Datenbank (postgreSQL) nicht von der Holdem Manager Seite. EnterpriseDB stellt eine (selbstverständlich kostenfreie) Version von postgreSQL zur Verfügung, die weitaus mehr features hat, als der Standard.

http://http://www.enterprisedb.com/products/download.do

Benutzt bitte ausschließlich die Version postgreSQL8.3 (keine Serverversion oder 8.4). Die Installation ist exakt identisch zu der, die ich in der deutschen Übersetzung beschrieben habe. Das feine an der EnterpriseDB-Fassung ist ein application stackbuilder, der automatisch mit installiert wird.

Am Ende der Installation findet Ihr einen Hinweis: launch application stack builder. Dann geht Ihr auf den postgresql8.3 database server und klickt ‚next’.
Dann wählt Ihr ‚AddOns’ und sucht in der Liste nach ‚EnterpriseDB Tuning Wizard’. Nach Eingabe der Sprache ladet Ihr dieses tool und installiert dieses.
Nach der Installation startet Ihr das tool und wählt wieder postgresql8.3 database server, dann ‚next’. Unter Server Zubehör wählt Ihr ‚Mixed’ und lasst die Installation bis zum ende durchlaufen. Das ganze Speichermanagement von postgreSQL ist nun komplett auf die individuelle Konfiguration Eures Rechners angepasst und deshalb ungleich schneller, als die Standard-Installation.


2. Tuning einer vorhandenen Installation

2.1 pg_log ändern
Die Standard-Installation von postgreSQL legt einen Ordner an, der nur zur Bugsimulation, Fehlerbehebung benötigt wird. Leider schreibt HM derart viele files in diesen Ordner, dass der schon nach kurzer Zeit ‚überquillt’. Den Ordnerinhalt (bitte nicht den Ordner selbst) können wir komplett löschen.
Um den Ordner zu finden, geht Ihr zu PostgreSQL>8.3>data, in diesem folder findet Ihr den Ordner pg_log. Den Inhalt dieses Ordners könnt Ihr komplett löschen (noch mal: bitte nur den Inhalt, nicht den Ordner selbst.
Damit wir diesen Vorgang nicht dauernd wiederholen müssen, hindern wir HM einfach daran, zukünftig in diesen Ordner schreiben zu können.
Dazu öffnen wir die Datei postgresql.conf mit Windows-notepad. Nun suchen wir eine Textzeile, die wie folgt aussieht:

ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on

Nun ändern wir logging collector=off und speichern das ganze.
Wirksam wird die Änderung erst nach dem Rechnerneustart.

2.2 shared buffers ändern

Die Speicherzuweisung für shared buffers ist als Standard bei der postgresql-Installation auf 32MB eingestellt. Den Wert könnt Ihr problemlos auf 128 bzw. 256MB (Faustformel: maximal 25% vom verfügbaren RAM, Eintrag immer in MB (also: 4GB RAM, Eintrag 1024MB) ändern.
Dazu öffnet Ihr wieder postgresql.conf mit Wordpad und sucht folgenden Eintrag:

# RESOURCE USAGE (except WAL)
#-----------------------------------------------------------------------

# - Memory -

shared_buffers = 32MB # min 128kB or max_connections*16kB
# (change requires restart)

Diesen Eintrag ändert Ihr auf 128 bzw 256MB (oder halt auf den Wert, der ungefähr 25% Eures RAM entspricht) und speichert.
Tip: ich würde mir von der kompletten Datei postgresql.conf vor Änderungen eine Kopie machen und die als postgresql.alt irgendwo anders auf dem Rechner abspeichern.

2.3 effective_cache_size ändern

Den Eintrag für die effektive Cachegröße findet Ihr hier:

# - Planner Cost Constants -

#seq_page_cost = 1.0 # measured on an arbitrary scale
#random_page_cost = 4.0 # same scale as above
#cpu_tuple_cost = 0.01 # same scale as above
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025 # same scale as above
#effective_cache_size = 128MB

Ihr seht hier, dass die Cachegröße mit einem ‘comment’ versehen ist, der Standard ist auf 128MB eingestellt, aber durch das comment (#) inaktiv. Wir aktivieren die Cachegröße indem wir das # entfernen. Den Wert von 128MB ändern wir auf bis zu 40% unseres gesamten RAM
Beispiel: 4MB RAM , Eintrag für effective cache: 1536MB.

2.4 maintanance_work_memory und work_mem ändern

Den Eintrag dafür findet Ihr hier:

#work_mem = 2MB # min 64kB
#maintenance_work_mem = 8MB # min 1MB
#max_stack_depth = 2MB # min 100kB

Beide Werte sind auch hier mit einem comment (#) versehen. Diesen comment löschen wir und aktivieren damit die Funktion.

Den Wert für maintenance_work_mem ändern wir auf einen Wert, der ungefähr 20% unseres
shared_buffers Wertes entspricht. In unserem Beispiel (4GB RAM) haben wir den Wert für shared buffers auf 1024MB geändert, der neue Wert für maintenance_work_mem wäre also
192MB.

Der optimale Wert von work_mem sind ungefähr 25% von maintenance_work_mem. In unserem Beispiel haben wir für maintenance_work_mem 192MB eingestellt, der Wert für
work_mem wäre also 48MB.

Sämtliche Einstellungen werden erst nach Systemneustart gültig.

3. Vakuum und Defragmentierung

Holdem Manager bringt eine Funktion mit, die sich Vacuum analyze database nennt. Die taugt nicht, weil viel zu langsam. Exakt das identische Ergebnis erreicht Ihr deutlich schneller mit:

- postgresql
- Pgadmin III
- postgresql8.3 database server
- Passwort eingeben
- rechte Maustaste auf die Datenbank HoldemManager
- Database encoding ‚Ok’
- Wartung

Hier nutzt Ihr: VACUUM+FULL+ANALYZE und ‚ausführliche Meldungen’ ist angeklickt.

Nach der Durchführung werdet Ihr feststellen, dass Eure Datenbank ‚geschrumpft’ ist und Holdem Manager um einiges schneller läuft.

Wenn Ihr tools zum Defragmentieren Eurer Festplatte benutzt, müsst Ihr vor der Defragmentierung Euren Datenbankserver anhalten, sonst kann das Programm nicht postgresql defragmentieren.

- PostgreSQL8.3
- PGAdminIII
- rechte Maustaste auf postgresql database server
- stoppe Dienst

Nach der Defragmentierung vergesst bitte nicht, den Datenbankserver wieder zu starten.

4. Reindexierung

Bei der Strukturierung der Datenbank postgreSQL werden die ganzen Datensätze mit Indizes versehen Stark vereinfacht: Über die Indizes wird ermöglicht, dass Suchanfragen komprimiert werden und nicht bei jeder Suchanfrage (Beispiel: Filter nach VPIP) der komplette Datenbestand durchsucht werden muss.

Diese Indexierung verlangsamt das Gesamtsystem Datenbank aber erheblich, wenn die Datenmenge groß wird. Deshalb sollte von Zeit zu Zeit die gesamte Datenbank reindexiert werden.

Ihr öffnet pgAdmin III, doppelklickt den postgresql database Server, gebt Euer Passwort ein,
dann findet Ihr auf der rechten Seite der Maske Eure Holdem Manager Datenbank.
Wenn Ihr diese mit der rechten Maustaste anklickt, erscheint ein ‚database-encoding’ Hinweis, den Ihr wegklickt (mit Ok bestätigen). Nun klickt Ihr nochmals mit der rechten Maustaste auf die Datenbank Holdem Manager und in dem sich öffnenden Fenster wählt Ihr:
WARTUNG. Unter Wartungsfunktionen findet Ihr REINDEX., was Ihr auch auswählt. Ansonsten bleibt in der Eingabemaske alles unverändert. Wenn Ihr nun mit Ok bestätigt, wird Eure gesamte Datenbank komplett neu indexiert. Das Ergebnis ist ein ungleich schnellerer Filtervorgang.

Geändert von Gelöschter Benutzer (07-07-2009 um 20:39 Uhr).
 
Alt
Standard
01-07-2009, 14:29
(#2)
Benutzerbild von Kohni74
Since: Dec 2007
Posts: 98
BronzeStar
Sehr guter anschaulicher Artikel!

Bin aber auf 8.4 unterwegs, da ich Win 7 habe.
 
Alt
Standard
01-07-2009, 14:34
(#3)
Gelöschter Benutzer
Zitat:
Zitat von Kohni74 Beitrag anzeigen
Sehr guter anschaulicher Artikel!

Bin aber auf 8.4 unterwegs, da ich Win 7 habe.
Spielt absolut keine Rolle, die Beschreibung gilt für 8.2, 8.3 und 8.4
 
Alt
Standard
01-07-2009, 15:04
(#4)
Gelöschter Benutzer
macht nen unterschied. den teil mit der speicheroptimierung kannst du haken, weil windows 7 ne dynamische speicheroptimierung mitbringt...

super fred kaizen und wie immer sehr hilfreich. danke dir.

edit: 8.3 läuft einwandfrei auf win 7
 
Alt
Standard
01-07-2009, 15:13
(#5)
Gelöschter Benutzer
Zitat:
Zitat von Gelöschter Benutzer Beitrag anzeigen
macht nen unterschied. den teil mit der speicheroptimierung kannst du haken, weil windows 7 ne dynamische speicheroptimierung mitbringt...
Wäre ja fein nutzbar- postgresql kann die nur nicht nutzen, weil die Speicherzugriffe allesamt als Obergrenze statisch sind. Deshalb ändert das tool nur die Einträge in der .conf in bezug auf shared memory usage, temp buffer usage usw.
 
Alt
Standard
02-07-2009, 22:00
(#6)
Benutzerbild von Tzare
Since: Apr 2008
Posts: 1.119
Kann man den Kram mit EnterpriseDB Tuning Wizard auch mit ner vorhandenen DB machen ?
 
Alt
Standard
02-07-2009, 22:17
(#7)
Gelöschter Benutzer
Zitat:
Zitat von Tzare Beitrag anzeigen
Kann man den Kram mit EnterpriseDB Tuning Wizard auch mit ner vorhandenen DB machen ?
Das geht, ja. Problem: Du musst dafür den DB-Server plattmachen und gleichzeitig die Ursprungs-DB erhalten, ohne die ganze DB nach der Änderung neu einlesen zu müssen. Ich hab mich, ehrlich gesagt, bislang nicht getraut, so eine Anleitung zu veröffentlichen weil die Gefahr groß ist, die gesamte DB dabei zu zerstören (nicht die alten Daten- die sind eh im HM-Archieve gespeichert). ich versuche derzeit eine Konvertierung einer 8.3 DB auf 8.4 auf eine einfach verständliche Art und Weise zu schreiben- die erreicht damit das selbe Ergebnis mit weniger Risiko. Wenn Du das trotzdem ausprobieren möchtest: hier die Anleitung:

http://www.holdemmanager.net/faq/afmmain.aspx?faqid=172
 
Alt
Standard
02-07-2009, 23:01
(#8)
Benutzerbild von Tzare
Since: Apr 2008
Posts: 1.119
edit : Den Application Stack Builder hab ich schon installiert bezog sich dein post mit DB server plattmachen nur auf die Installation davon ?

Also geht das ab
10) Download the tuning wizard by selecting your country and continuing.
mit ner laufenden DB ?

Hab ~15 Millionen Hände in der DB (bevor hier das rumgekreische los geht, es gibt auch noch andere Seiten als Stars ...) , will kein Risiko eingehen .

Geändert von Tzare (02-07-2009 um 23:06 Uhr).
 
Alt
Standard
02-07-2009, 23:12
(#9)
Gelöschter Benutzer
Zitat:
Zitat von Tzare Beitrag anzeigen
edit : Den Application Stack Builder hab ich schon installiert bezog sich dein post mit DB server plattmachen nur auf die Installation davon ?

Also geht das ab
10) Download the tuning wizard by selecting your country and continuing.
mit ner laufenden DB ?

Hab ~15 Millionen Hände in der DB (bevor hier das rumgekreische los geht, es gibt auch noch andere Seiten als Stars ...) , will kein Risiko eingehen .
Super- dann kannst Du den tuning wizard sofort benutzen. Ich würde die DB vorher anhalten- ansonsten kannst Du über den stack builder das tuning tool sofort downloaden und loslegen- passieren kann da überhaupt nichts.
 
Alt
Standard
04-07-2009, 14:11
(#10)
Gelöschter Benutzer
Anleitung erweitert um:
2.2 Speicherzuweisung ändern