Saya menggunakan XenServer dengan beberapa mesin virtual yang memiliki database postgres lokal. Bahkan ketika semua aplikasi tidak digunakan dan database tidak digunakan, setiap vm menyebabkan lalu lintas jaringan penyimpanan konstan yang menurunkan kinerja perangkat penyimpanan iscsi.
Setelah berjalan iotop
saya mencatat bahwa proses proses collector stats stats terus menulis ke disk dengan kecepatan sekitar 2 MByte / s.
Saya kemudian menonaktifkan pengumpulan statistik dengan mengedit /etc/postgresql/8.4/main/postgresql.conf
:
#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------
# - Query/Index Statistics Collector -
track_activities = off
track_counts = off
...
seperti yang disarankan di http://www.postgresql.org/docs/8.4/static/runtime-config-statistics.htm .
Ini menghilangkan penulisan terus-menerus, tetapi apakah ada kerugian mematikan pelacakan statistik?
Atau haruskah saya lebih suka menempatkan direktori pg_stat_tmp pada ramdisk untuk menghindari lalu lintas disk / jaringan?
Sistem ini adalah Debian 6.0.7 (squeeze) yang mutakhir dengan postgres 8.4 dan sekitar 20 database dengan sekitar 50 tabel, total ukuran file dump kurang dari 100 MByte.
Tingkatkan PostgreSQL. Paling tidak, pastikan Anda berada pada rilis 8.4 terbaru; jika itu tidak mengatasinya dan itu praktis untuk dilakukan, Anda mungkin harus meningkatkan ke 9.2. Setidaknya beberapa masalah seputar pengumpul statistik telah diatasi sejak 8.4, dan akan mencapai akhir hidup dalam waktu sekitar satu tahun . Anda mungkin dapat menemukan informasi lebih lanjut dengan mencari arsip milis pgsql-umum .
Anda seharusnya tidak memiliki terlalu banyak masalah untuk memutakhirkan dari 8,4 menjadi 9,2, meskipun seperti biasa Anda harus membaca bagian pemutakhiran dari catatan rilis untuk setiap perilisan .0 peralihan (9.0, 9.1 dan 9.2). Berikan perhatian khusus pada
standard_conforming_strings
danbytea_output
.sumber
Masalah yang sama disini. Saya juga menonaktifkan
track_*
dan sebagainya.Efek sampingnya
autovacuum
adalah menggunakan data yang dikumpulkan ini untuk menjalankannya.Jadi, saya mengurus jadwal malam a
vacuumdb
.Solusi lain adalah mengatur
autovacuum_naptime
cukup tinggi agar sistem beristirahat.sumber