Ich verwende XenServer mit mehreren virtuellen Maschinen mit lokalen Postgres-Datenbanken. Selbst wenn alle Anwendungen nicht verwendet werden und die Datenbanken inaktiv sind, verursacht jede VM einen konstanten Speichernetzwerkverkehr, der die Leistung des iscsi-Speichergeräts beeinträchtigt.
Nach dem Ausführen habe iotop
ich festgestellt, dass der Prozess des Postgres-Statistiksammlerprozesses ständig mit einer Geschwindigkeit von ca. 2 MByte / s auf die Festplatte schreibt.
Ich habe dann das Sammeln von Statistiken durch Bearbeiten deaktiviert /etc/postgresql/8.4/main/postgresql.conf
:
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
track_activities = off
track_counts = off
...
wie in http://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm vorgeschlagen .
Dadurch wurde das kontinuierliche Schreiben beseitigt. Gibt es jedoch Nachteile beim Deaktivieren der Statistikverfolgung?
Oder sollte ich das Verzeichnis pg_stat_tmp lieber auf einer Ramdisk ablegen, um den Festplatten- / Netzwerkverkehr zu vermeiden?
Das System ist ein aktuelles Debian 6.0.7 (Squeeze) mit Postgres 8.4 und ungefähr 20 Datenbanken mit ungefähr 50 Tabellen. Die Gesamtgröße der Dump-Datei beträgt weniger als 100 MByte.
Aktualisieren Sie PostgreSQL. Stellen Sie mindestens sicher, dass Sie auf der neuesten Version 8.4 sind. Wenn dies nicht der Fall ist und dies praktisch ist, sollten Sie wahrscheinlich ein Upgrade auf 9.2 durchführen. Zumindest einige Probleme rund um den Statistiksammler wurden seit 8.4 behoben und werden in etwa einem Jahr das Ende ihrer Lebensdauer erreichen . Weitere Informationen finden Sie möglicherweise in den Archiven der pgsql-allgemeinen Mailingliste .
Sie sollten nicht zu viele Probleme beim Upgrade von 8.4 auf 9.2 haben. Wie üblich müssen Sie jedoch den Upgrade-Abschnitt der Versionshinweise für jede .0-Version dazwischen (9.0, 9.1 und 9.2) lesen. Achten Sie besonders auf
standard_conforming_strings
undbytea_output
.quelle