Używam XenServer z kilkoma maszynami wirtualnymi z lokalnymi bazami danych Postgres. Nawet gdy wszystkie aplikacje są nieużywane, a bazy danych są bezczynne, każda maszyna wirtualna powoduje stały ruch sieciowy w pamięci masowej, co zmniejsza wydajność urządzenia pamięci masowej iscsi.
Po uruchomieniu iotop
zauważyłem, że proces gromadzenia statystyk postgres ciągle zapisuje na dysk z prędkością około 2 MB / s.
Następnie wyłączyłem zbieranie statystyk, edytując /etc/postgresql/8.4/main/postgresql.conf
:
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
track_activities = off
track_counts = off
...
jak sugerowano w http://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm .
To wyeliminowało ciągłe pisanie, ale czy są jakieś wady wyłączające śledzenie statystyk?
Czy powinienem raczej umieścić katalog pg_stat_tmp na ramdysku, aby uniknąć ruchu dysku / sieci?
System to aktualny Debian 6.0.7 (squeeze) z postgres 8.4 i około 20 bazami danych z około 50 tabelami, całkowity rozmiar pliku zrzutu jest mniejszy niż 100 MB.
Zaktualizuj PostgreSQL. Przy absolutnym minimum upewnij się, że korzystasz z najnowszej wersji 8.4; jeśli to nie rozwiązuje problemu i warto to zrobić, prawdopodobnie powinieneś zaktualizować do wersji 9.2. Przynajmniej niektóre problemy wokół modułu gromadzącego statystyki zostały rozwiązane od 8.4, a ich koniec będzie za około rok . Możesz znaleźć więcej informacji, przeszukując archiwa listy mailingowej pgsql-general .
Nie powinieneś mieć zbyt wielu problemów z aktualizacją z wersji 8.4 do 9.2, ale jak zwykle musisz przeczytać sekcję dotyczącą aktualizacji informacji o wydaniu dla każdej wersji .0 pomiędzy (9.0, 9.1 i 9.2). Zwróć szczególną uwagę na
standard_conforming_strings
ibytea_output
.źródło
Mam ten sam problem. Wyłączyłem również
track_*
i tak dalej.Efektem ubocznym jest
autovacuum
wykorzystanie zebranych danych do uruchomienia.Staram się więc zaplanować co wieczór
vacuumdb
.Innym rozwiązaniem jest ustawienie
autovacuum_naptime
wystarczająco wyższej, aby system mógł spoczywać.źródło