Aktueller Forschungsstand - PostgreSQL Admin

This commit is contained in:
marcodn 2023-12-22 13:09:35 +01:00
parent 02ba28256f
commit 93ffa88aa6
6 changed files with 50 additions and 1 deletions

View file

@ -55,6 +55,41 @@ Hierbei ist auch ein Vergleich mit anderen Technologien angedacht.
% Aktell 3546-1.pdf Page 404 % 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} \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 % 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

View file

@ -16,6 +16,7 @@
\item Einbau von Performancecounter \item Einbau von Performancecounter
\item Aktivieren von Performancecounter am Postgresql \item Aktivieren von Performancecounter am Postgresql
\item Laufzeitanalyse starten \item Laufzeitanalyse starten
\item Befragung der Benutzer und Entwickler
\end{enumerate} \end{enumerate}
\item Optimierung \item Optimierung
\begin{enumerate} \begin{enumerate}

View file

@ -75,6 +75,17 @@
eprint = {https://www.hanser-elibrary.com/doi/pdf/10.3139/9783446473157} eprint = {https://www.hanser-elibrary.com/doi/pdf/10.3139/9783446473157}
} }
% Buch PostgreSQL - Administration (Hagen Leihe)
@book{Eisentraut2013,
AUTHOR = {Eisentraut, Peter AND Helmle, Bernd},
YEAR = {2013},
TITLE = {PostgreSQL-Administration - },
EDITION = {},
ISBN = {978-3-868-99362-2},
PUBLISHER = {O'Reilly Germany},
ADDRESS = {Köln},
}
% File: müller-wehr-2012-java-persistence-api-2.pdf / Ehemaliger Link: doi:10.3139/9783446431294 % File: müller-wehr-2012-java-persistence-api-2.pdf / Ehemaliger Link: doi:10.3139/9783446431294
@book{MüllerWehr2012, @book{MüllerWehr2012,
author = {Müller, Bernd and Wehr, Harald}, author = {Müller, Bernd and Wehr, Harald},
@ -92,4 +103,5 @@
% - OpenJPA: https://openjpa.apache.org/documentation.html % - OpenJPA: https://openjpa.apache.org/documentation.html
% - IBN OpenJPA Cache: https://www.ibm.com/docs/de/was/8.5.5?topic=applications-configuring-openjpa-caching-improve-performance % - IBN OpenJPA Cache: https://www.ibm.com/docs/de/was/8.5.5?topic=applications-configuring-openjpa-caching-improve-performance
% File: postgresql-15-A4.pdf % File: postgresql-15-A4.pdf

Binary file not shown.

View file

@ -85,6 +85,7 @@
% Allgemeine Webseite: % Allgemeine Webseite:
% https://www.overleaf.com/learn/latex/Bibliography_management_with_natbib % https://www.overleaf.com/learn/latex/Bibliography_management_with_natbib
% https://postgrespro.com/docs/postgresql/14/runtime-config-resource
% Frank Wedekind: % Frank Wedekind:
% https://books.google.de/books?hl=de&lr=&id=3qO8DQAAQBAJ&oi=fnd&pg=PA1&dq=frank+wedekind&ots=S4LHWQ0h2e&sig=Mz8PEGF-md4n3AwH9cgXq-5vUac#v=onepage&q=frank%20wedekind&f=false % https://books.google.de/books?hl=de&lr=&id=3qO8DQAAQBAJ&oi=fnd&pg=PA1&dq=frank+wedekind&ots=S4LHWQ0h2e&sig=Mz8PEGF-md4n3AwH9cgXq-5vUac#v=onepage&q=frank%20wedekind&f=false

View file

@ -19,7 +19,7 @@
\newcommand{\myId}{8335710\xspace} \newcommand{\myId}{8335710\xspace}
\newcommand{\myProf}{Prof. Dr. Uta St\"orl\xspace} \newcommand{\myProf}{Prof. Dr. Uta St\"orl\xspace}
\newcommand{\referent}{Referentin\xspace}% Referentin/Referent, depending on the gender of your prof \newcommand{\referent}{Referentin\xspace}% Referentin/Referent, depending on the gender of your prof
\newcommand{\mySupervisor}{----\xspace} \newcommand{\mySupervisor}{Sebastian Bruchhaus\xspace}
\newcommand{\supervisor}{Betreuer\xspace}% Betreuerin/Betreuer, depending on the gender of your supervisor \newcommand{\supervisor}{Betreuer\xspace}% Betreuerin/Betreuer, depending on the gender of your supervisor
\newcommand{\myFaculty}{Fakult\"at f\"ur Mathematik und Informatik\xspace} \newcommand{\myFaculty}{Fakult\"at f\"ur Mathematik und Informatik\xspace}
\newcommand{\myUni}{FernUniversit\"at in Hagen\xspace} \newcommand{\myUni}{FernUniversit\"at in Hagen\xspace}