beste Performance Erfahrungen?

hi Leute,

habe soeben PostgreSQL 8.4 installiert und musste mit erschrecken feststellen, dass unser altes PostgreSQL mit den Standard config einstellungen lief.

Ich wollte jetzt bevor ich die Datenbank rüberzerre die Configs anpassen. Jedoch weiß ich nicht so genau wo ich anfangen soll.
In der postgresql.conf stehen ja viele Sachen drin. Nur was davon macht spätere Datenbank zugriffe schneller?

Habt ihr da ein paar Erfahrungswerte für mich?



08:16 < akretschmer> ??performance
08:16 < rtfm_please> For information about performance
08:16 < rtfm_please> see http://revsys.com/writings/postgresql-performance.html
08:16 < rtfm_please> or http://wiki.postgresql.org/wiki/Performance_Optimization
08:16 < rtfm_please> or http://www.depesz.com/index.php/2007/07/05/how-to-insert-data-to-database-as-fast-as-possible/
08:16 < akretschmer> ??tuning
08:16 < rtfm_please> For information about tuning
08:16 < rtfm_please> see http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
08:16 < rtfm_please> or http://www.edoceo.com/liber/db-postgresql-performance.php
08:16 < rtfm_please> or http://www.powerpostgresql.com/PerfList

Andreas

wenn es mit den standard-einstellungen bereits gut flutschte, dann wuerde ich empfehlen, davon abzusehen die konfiguration großartig zu ändern.

es ist doch auch ein nicht unerheblicher vorteil, ohne grosse modifikationen mit einer default-installation des DBMS arbeiten zu können …

Manchmal möchte ich wissen, was in deinem Kopf vorgeht, wenn du so etwas von dir gibst.

Also, ich will das lieber nicht wissen…

Andreas

Bleibt die Frage: ob Du es könntest, wenn du wolltest

Nein, da bleibt keine Frage mehr.

Andreas

gehen wir mal davon aus, dass du es wirklich wissen willst …

ich arbeite u.A. auch an Software, die wie Standard-SW vertrieben wird. da ist es ein nicht unerheblicher Vorteil, wenn die Anwendung auch mit einer Default-Konfiguration des DBMS zurecht kommt, … die Gründe dafür liegen auf der Hand … oder offenbaren sich spätestens dann, wenn man am telefon sagen darf: “Da downloaden - installieren - fertig” …

Außerdem fragte er nach Erfahrungen … man kann mit den Speichereinstellungen ein bisschen was “allgemeines” drehen - aber letztendlich sollte ja das was man da verstellt zu den Bedürfnissen der Anwendung passen. Eine OLTP Anwendung stellt andere Ansprueche als OLAP … oder nehmen wir ein noch junges problem was zu loesen war, als der generische optimizer etwas tuning brauchte - weil die anzahl der joins in einer abfrage einen grenzwert ueberschritten …

Wie heißt deine Firma? Damit ich nie in die Verlegenheit komme, mit dir zusammenzuarbeiten. Die von dir vorgeschlagene Vorgehensweise ist grob fahrlässig.

Kunde kauft einen Server und will von dir entwickelte Datenbankanwendungen da drauf laufen lassen und du empfiehlst ihm, das Teil mit der Defaultkonfiguration laufen zu lassen - die nutzt aber nur ungefähr 0.23% der Systemressourcen.

Die Standardkonfiguration von PostgreSQL ist auf geringen Ressourcenverbrauch ausgelegt, um andere Dienste auf dem gleichen System nicht zu beeinträchtigen. Wenn man da mehr Leistung als ein kleines Adressbuch abruft, braucht man auf jeden Fall Konfigurationsänderungen.



Die Standardkonfiguration von PostgreSQL ist auf geringen Ressourcenverbrauch ausgelegt, …

grob fahrlässig - nagut


Nachtrag:

Das ist sicher nicht das Szenario eines Vertriebs von Standard SW.

Du willst sie Deinen Mitbewerbern empfehlen?

Andreas

Ey, wenn du so weiter machst, gehen wir in Paris nicht essen :wink:

Das hat nichts mit dem Thema zu tun - dafür ist die Rubrik Smalltalk gedacht

Xandrian - bitte kommen

Ich weiss gerade nicht mehr genau, welche Optionen genau fuer bessere Performance angepasst werden muessen, aber ich hab das mit Hilfe von einem Buch geloest. PostgreSQL-Administration: Amazon.de: Peter Eisentraut, Bernd Helmle: Bücher
Da ist so ziemlich alles drin erklaert, was du veraendern kannst und wo dir die Beschreibung in der config und im Handbuch nicht mehr weiterhelfen.

Erstmal Vielen Dank für eure Antworten


Ich habe jetzt in den letzten paar stunden nur mit den Einstellungen rum gespielt… aber irgendwie kaum bis keinen Unterschied gemerkt

Bei Explain Analyze sagt der mir immer um die 40ms, was prinzipiell eigentlich auch ganz jut is, da ich früher über 10s hatte. Aber das liegt fast nur am neuen Server

Nun, wenn Du nur 0815-Abfragen hast, spielt das in der Tat keine so große Rolle. Interessant wird es bei großen Datenmengen, vielen gleichzeitigen Abfragen.

Bei Explain Analyze sagt der mir immer um die 40ms, was prinzipiell eigentlich auch ganz jut is, da ich früher über 10s hatte. Aber das liegt fast nur am neuen Server

Explain Analyse ist eher ein Tool, um Informationen über den Abfrageplan zu erhalten, also ob Indexe genutzt werden und so. Allerdings zeigt es auch an, wie z.B. Sortieroperationen erfolgen, also ob im RAM oder extern auf Disk. Und das ist wiederum eine Frage der Konfiguration.

Zusammenfassend kann man nur Dir helfen, wenn mehr Details bekannt wären. Wie z.B. ob das ein Only-PG-Server ist oder ob da auch noch ein Indianer z.B. mit wohnt, wieviel RAM, wieviel Platten und deren Anordnung, wieviel User und so weiter. Ferndiagnose ist da eh schwer, ein Buch dazu, was das alles beschreibt, wurde aber schon genannt.

Ach ja: mit vernünftiger Konfiguration kannst Du in der Tat einiges bewirken.

Andreas

mehr infos, ok:
es läuft eine mysql DB drauf, dann noch ndo2db und halt meine Postgres DB.
sonst wurde alles weitest gehend deaktiviert.

der server verfügt über dual cores mit 2,8GHZ, 4GB RAM, 2 serial scsi mit 10k umdrehungen und je 146GB und (leider) einem RAID5.

Unser Nagios schmeißt in die DB alle paar Sekunden (manchmal auch minuten) neue Daten rein.
Aus diesen Daten werden alle 60min Durchschnittswerte berechnet (per cron)
Auf diese berechneten Werte werden je nach Bedarf paar mal am Tag drauf zu gegriffen werden und mittels jpgraph grafisch aufbereitet.


Sprich soviel wird auf der DB nicht gemacht. Aber die Darstellung der Bilder braucht halt recht lange wenn die Selects lange brauchen. aber mit 40ms kann man denk ich mal zufrieden sein.
Fals ihr noch einen heißen Tipp habt, immer raus damit


Gruß Nico

40 ms sind erst mal nicht lange.

Was wird da konkret an Anfragen ausgeführt?

Nichts großes eigentlich:

SELECT fsmap.fsid, fsmap.fssize FROM nagios.hostfsmap fsmap, nagios.hosts hosts 
                              where fsmap.fsname = '$fsname' 
                              and fsmap.hostid = hosts.hostid 
                              and hosts.hostname = '$hostname'



SELECT fsused, fsfree from filesysdata 
                              where fsid = $fsid order by fstime desc limit 1



SELECT mean_used, datum from fs_hourly 
                              where fsid = $fsid 
                              and (datum <= date('$heute')) 
                              and (datum >= date('$datumvor7tagen')) order by datum asc

im Großen und Ganzen sind die Abfragen dieser Natur.
Nur da die Tabellen teilweise ne Menge Datensätze haben, dauerts manchmal bissle. Habe aber bereits Partitionierungen und Indizes drinne.

Die große Frage ist: werden die auch verwendet?
Kannst du bitte von den Tabellen einmmal die Ausgabe von \dt (in psql) posten und zusätzlich ein EXPLAIN von den Anfragen?