Hardwareperformance

Liebe WT-Nutzer,
lieber Veit,

welche Erkenntnisse zur Sucgeschwindigkeit bei WT bereits vor? D. h. welche
Hardware-Performance sollte der DB-Server haben, um bei Datensätzen größer
300.000 eine Suchdauer von <= 5 sec. zu gewährleisten?

Vielen Dank für Eure Erkenntnisse und Hinweise im Voraus.

Mit freundlichem Gruß aus Dresden

René (Gränz)

Hallo René,

wenn ich das richtig sehe, hast Du die 300 Tsd. Sätze in mehreren GedComs (wie viele?).

Die Datenbanken von WT sind auf diese Größe / Anzahl der GedComs nicht optimiert.

Es könnte m.E. nutzen (und nicht schaden), wenn man bei allen Tabellen, die die auf den Gedcom ID (x_file) im Primary Key haben einen weiteren Index nur mit x_file anzulegen.

Gruß
Frank

Dipl. Inform.
Frank Warius

Mobil: +49 (172) 401 6803
Tel.: +49 (2150) 60 999 48

Schützenstr. 27, 40668 Meerbusch
Frank@Warius.de | www.warius.de

Hallo Frank,

vielen Dank für die Antwort. Ja, Du siehst es richtig. Die 300.000
Datensätze gliedern sich auf 280 Gedcoms auf. Momentan kommen monatlich ca.
5 neue Gedcoms mit ca. 5.000 Datensätzen neu hinzu. Eine Verschmelzung auf
weniger Gedcoms gestaltet sich aufgrund der Grenze von 20 MB pro Gedcom
schwierig, da wir relativ viele (Quell-)Texte erfassen, was die Qualität des
Gesamtprojekts erhöht.

Kannst Du genauer erklären, wie Du das mit dem Index meinst?

Vielen Dank für Deine Bemühungen im Voraus.

Mit freundlichem Gruß aus Dresden

René

Hallo René,

Entscheidend für die Performance ist m.E. in erster Linie
* die Anzahl der gleichzeitigen User
* das Design der Datenbank
* der zur Verfügung stehende Speicher

Bei eurem Volumen dürften wohl 2 GB Speicher reichen.

Wie gut die DB ist, kann man an durch folgende Einstellungen in der mysql my.ini sehen

long_query_time = 3 [in sec. Alle Abfragen, die mehr als 3 Sec in der DB dauern, werden geloged]
slow-query-log [schaltet das Log für langsame Abfrage ein]
slow_query_log_file = "D:/#Web/#work/Log/MySQL/slow.log" [Pfad und Name der Log-Datei (hier Windows)

evtl. brauchst Du noch diesen Eintrag
log-output = FILE

ob dies bei deinem Hosting Vertrag möglich ist, weiß ich nicht, musst Du den Provider fragen.

Der Output sieht dann z.B. so aus
# User@Host: root[root] @ frank....
# Query_time: 13.427113 Lock_time: 0.000000 Rows_sent: 974 Rows_examined: 3458439
SET timestamp=1323699921;
SELECT n2.n_surn, n1.n_surname, n1.n_id FROM `wt110_name` n1
    JOIN `wt110_link` ON (n_id=l_from AND n_file=l_file AND l_type='FAMS')
        JOIN (
            SELECT n_surn, n_file
                FROM `wt110_name`
                WHERE n_file=2 AND n_type!='_MARNM' AND n_surn LIKE CONCAT('@','S','%') COLLATE utf8_danish_ci ESCAPE '@'
                GROUP BY n_surn COLLATE 'utf8_danish_ci', n_file
            ) n2
        ON (n1.n_surn=n2.n_surn COLLATE 'utf8_danish_ci' AND n1.n_file=n2.n_file) AND n_type!='_MARNM';

Abfrage aller Personen deren Nachname mit "S" beginnt

Query_time: 13.427113 die Abfrage hat 13,4 sec nur in der DB gedauert
Lock_time: 0.000000 kein reseriveren für Update
Rows_sent: 974 Ergebnis 974 Zeilen (also Personen mit Nachnamen S)
Rows_examined: 3458439 Verarbeitet wurden 346 Tsd. Tabellen Einträge; allerdings habe ich nur 8,5 Tsd Personen

Hier liegt also was im argen. Die Abfrage selber kann dann mit MySQL Tools analysiert werden, was dann zu zusätzlichen Indices führen kann.

Auf Grund der Vielzahl der GedComs empfehle ich Dir folgende Indices aufzubauen (MySQL Befehle z.B. über die MySQL Workbench einzugeben):

use wbt;
create index wFile on wt110_families (f_file);
create index wFile on wt110_individuals (i_file);
create index wFile on wt110_link (l_file);
create index wFile on wt110_name (n_file);
create index wFile on wt110_other (o_file);
create index wFile on wt110_placelinks (pl_file);
create index wFile on wt110_sources (s_file);

wobei sich dies auf folgende Einträge in der config.ini.php bezieht
  dbname="wbt"
  tblpfx="wt110_"

Viel Erfolg
Frank

Dipl. Inform.
Frank Warius

Mobil: +49 (172) 401 6803
Tel.: +49 (2150) 60 999 48

Schützenstr. 27, 40668 Meerbusch
Frank@Warius.de | www.warius.de

Hallo Frank,

lange habe ich Deine Ausführungen in meinem Postfach liegen gelassen.

Nun ist es an der Zeit, mich mit der Materie zu beschäftigen.
Seit einiger Zeit bin ich von einem über DynDNS ans Internet angeschlossenen
P4-PC unter Ubuntu als webtrees Server,
auf eine Provider-Lösung umgestiegen.

Seit dem Umstieg quälen mich die Antwortzeiten bei simplen Anfragen an
webtrees. Speziell aber beim Verwalten von Medien.
Meine webtrees-Installation besteht aus einer Gedcom-Basis mit knapp 19.300
Individuen und 4400 Medien.

Nun stelle ich mir die Frage, an welchen "Schrauben" man stellen kann, um
die Antwortzeiten zu optimieren.
Ich habe keine Server-Empfehlungen bei www.webtrees.net gefunden.

Könntest Du ein paar allgemeingültige Mindestanforderungen aufzählen?

Hallo,

Da meine schöne Liste im Text Format nicht korrekt dargestellt wird,
hier ein neuer Versuch:

Adresse http://wt.rauhut.eu
Provider OVH
Anzahl GED 2
Individuen 19.300
Medien 4.400
Antwortzeit 31,822 sec

Die Ergebnisse könnte ich im http://wiki.webtrees.net/ veröffentlichen.

Gruß
Andreas

Hallo Andreas,

war eben auf Deiner Seite (sieht gut aus). Bei "normalen" Abfragen scheinen die Antwortzeiten gut / normal.

Kannst Du wie unten geschildert die SQL Log-Funktion lange Abfragen (long queries) aktivieren / lassen?

Ansonsten vermute ich das alte Leiden, dass verschiedene Suchabfragen zu Table-Scans (Durchsuchen der SQL-Datenbank satzweise und nicht über Suchindizes) führen.

Versuch mal diese SQL Indizes aufzubauen (ich weiß, das ist sehr technisch ....) (Näheres unten im Post).

use wbt;
create index wFile on wt110_families (f_file);
create index wFile on wt110_individuals (i_file);
create index wFile on wt110_link (l_file);
create index wFile on wt110_name (n_file);
create index wFile on wt110_other (o_file);
create index wFile on wt110_placelinks (pl_file);
create index wFile on wt110_sources (s_file);

wobei sich dies auf folgende Einträge in der config.ini.php bezieht
  dbname="wbt"
  tblpfx="wt110_"

Dies hat bei mir geholfen (mein Server 2 GB, Windows 2008 R2 Server)

Gruß
Frank

Dipl. Inform.
Frank Warius

Mobil: +49 (172) 401 6803
Tel.: +49 (2150) 60 999 48

Schützenstr. 27, 40668 Meerbusch
Frank@Warius.de | www.warius.de