Aktueller Forschungsstand - PostgreSQL Admin
This commit is contained in:
parent
02ba28256f
commit
93ffa88aa6
6 changed files with 50 additions and 1 deletions
|
@ -55,6 +55,41 @@ Hierbei ist auch ein Vergleich mit anderen Technologien angedacht.
|
|||
|
||||
% Aktell 3546-1.pdf Page 404
|
||||
|
||||
Die Speicherveraltung des PostgreSQL-Server muss für Produktivsysteme angepasst werden \citep[34-38]{Eisentraut2013}.
|
||||
Hierunter fallen die \textbf{shared\_buffers} die bei
|
||||
ca. 10 bis 25 Prozent des verfügbaren Arbeitsspeichers liegen sollte, mit dieser wird das häufige schreiben des Buffers durch Änderung
|
||||
von Daten und Indexen auf die Festplatte reduziert.
|
||||
Die Einstellung \textbf{temp\_buffers} die definiert wie groß der Speicher für temporäre Tabellen pro Verbindung maximal werden darf, sollte
|
||||
ebenfalls überprüft werden, da ein zu kleiner Wert bei großen temporären Tabellen zu einem signifikanten Leistungseinbruch führt, wenn
|
||||
die Tabellen nicht im Hauptspeichern sondern in einer Datei beareitet werden.
|
||||
Der \textbf{work\_mem} definiert die Obergrenze des zur Verfügung gestellt Hauptspeichers pro Datenbankoperation wie effizientes Sortieren,
|
||||
Verknüpfen oder Filtern. Auch wird im Falle eines zu klein
|
||||
gewählten Speichers auf temporäre Dateien auf der Festplatte ausgewichen, was ebenfalls zu signifikaten Leistungsinbrüchen führt.
|
||||
Die \textbf{maintenance\_work\_mem} wird bei Verwaltungsoperation wie Änderung und Erzeugung von Datenbankobjekten als Obergrenze definiert.
|
||||
Aber auch für die Wartungsaufgaben \textbf{Vacuum}, die fragmentierte Tabellen aufräumt und somit die performance hebt. Welche Regelmässig
|
||||
durchgeführt werden sollte.
|
||||
|
||||
Die Wartung des Datenbanksystemes ist eine der wichtigen Aufgaben und sollte regelmässig durchgeführt werden, damit die Performance des
|
||||
Systems durch die Änderung des Datenbestandes nicht einbricht \citep[75]{Eisentraut2013}. Hierfür gibt es den \textbf{VACUUM}-Befehl, der
|
||||
entweder per Hand oder automatisch durch das Datenbanksystem ausgeführt werden soll.
|
||||
Neben dem aufräumen durch \textbf{VACUUM} sollten auch die Planerstatistiken mit \textbf{ANALYZE} \citep[83]{Eisentraut2013} aktuell
|
||||
gehalten werden. Damit die Anfragen durch den Planer richtig optimiert werden können.
|
||||
Für beide Wartungsaufgaben gibt es den Autovacuum-Dienst. Dieser sollte aktiv und richtig konfiguriert sein.
|
||||
|
||||
Mit dem Tool \textbf{pgFouine} \citep[155]{Eisentraut2013} können die Logs des PostgreeSQL Server im Nachgang analysiert werden und auf
|
||||
Probleme hin untersucht werden. Hiermit kann sehr einfach die häufigsten bzw. langsamsten Anfragen ermittelt werden.
|
||||
|
||||
Für weitere Optimierungen müssen dann die Anfragen einzeln überprüft werden. Hierfür ist es sinnvoll die Ausführungspläne der Abfrage
|
||||
zu analysieren \citep[252]{Eisentraut2013}. Hierbei ist es wichtig die verschiedenen Plantypen und ihre Kosten zu kennen, sowie die
|
||||
angegeben Werte für die Plankosten zu verstehen. Hinzu kommt noch, dass man den tatsächlich ausgeführten Plan mit dem ursprünglichen
|
||||
Plan vergleichen sollte \citep[254]{Eisentraut2013}. Eine er wichtigsten Aussage hierbei ist, ob die Zeilenschätzung akkurat war.
|
||||
Größere Abweichung weißen häufig auf veraltete Statistiken hin.
|
||||
|
||||
|
||||
\citep[60]{MüllerWehr2012}
|
||||
|
||||
% Zum ende noch, warum wird das gemacht? => Weil Datenbank-Definition immer unterschiedlich sind, und die Optimierung an den entsprechenden
|
||||
% Datenbestand angepasst werden muss
|
||||
|
||||
\section{Vorgehen bei der Umsetzung}
|
||||
% Anm: eine mögliche Vorgehensweise. Bei der Beschreibung der Vorgehensweise beziehen Sie sich dann natürlich auf den oben beschrieben Stand in Forschung und Technik
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
\item Einbau von Performancecounter
|
||||
\item Aktivieren von Performancecounter am Postgresql
|
||||
\item Laufzeitanalyse starten
|
||||
\item Befragung der Benutzer und Entwickler
|
||||
\end{enumerate}
|
||||
\item Optimierung
|
||||
\begin{enumerate}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue