PostgreSQL AutoVacuum Nedir? AutoVacuum Parametreleri Nelerdir?

PostgreSQL AutoVacuum Nedir? AutoVacuum Parametreleri Nelerdir?

Vacuum hakında  detaylı bilgi edinmek istiyorsanız VACUUM Nedir ? İsimli yazıma bakmanızı tavsiye ederim.

AutoVacuum Nedir?

Dead rowların temizlenmesi için   vacuum işlemi gerekmektedir. Sürekli manuel olarak el ile vacuum çalıştırmak problem ve maaliyetli olacağından dolayı postgresql bize AUTOVACUUM özelliğini sunmuştur. AUTOVACUUM belirli periyodlarla postgresql cluster’ı üzerinde bulunan veritabanlarının dead rowlarını düzenleyerek performans da artı yönde etki sağlamaktadır.

AutoVacuum ilk kurulum esnasında  autovacuum enable olarak gelmektedir.  Autovacuum servisleri etkinleştirildiğinde eklenmiş, güncellenmiş ve silinmiş verileri içeren tabloları istatistikler vasıtasıyla kontrol eder. İstatistiklerin kontrol edilmesi için postgresql.conf üzerinde track_counts özelliği enable edilmelidir.

Autovacuum Parametreleri

Autovacuum:

Autovacuum’un çalıştırılıp çalıştırılmayacağını kontrol eder. Bu özellik ile birlikte track_counts parametresi de aktif edilmelidir.

Log_autovacuum_min_duration:

Autovacuum çalışması durumunda belirtilen parametrelere göre loga yazılmasını sağlar. Parametreler aşağıdaki gibidir.

0       :  Tüm vakum işlemlerini loga yazar.

-1      :  Vakum işlemlerini loga yazmaz .

x MS  :  Herhangi bir zaman dilimi verilirse . O zaman diliminde ve sonrasındaki işlemler loga yazılır. Örnek olarak 500 ms ayarlanması
durumunda 500 ms ve sonrası işlemler loga yazılır.

autovacuum_max_workers:

Autovacuum’un kaç autovacuum processi ile çalışılacağının belirtildiği yerdir. Default değeri üçtür.

autovacuum_naptime:

Herhangi bir veritabanında autovacuum çalışmaları arasındaki minimum gecikmeyi belirtir. Belirtilen zamanlarda veritabanlarını inceler ve veritabanında vacuum işlemlerini gerçekleştirir. Default değeri bir dakikadır. Değiştirilmek istenildiğinde herhangi bir zaman dilimi belirtilmezse girilen sayıyı saniye cinsinden değerlendirir.

autovacuum_vacuum_threshold:

Herhangi bir tablo da autovacuum’u tetiklemek için update ve delete edilmiş tuple sayısıdır. Varsayılan tuple sayısı 50.

autovacuum_vacuum_insert_threshold:

Herhangi bir tabloya ne kadar veri eklendiğinde autovacuum çalıştırılması isteniyor ise buradan güncellemeler yapılabilir. Varsayılan değer 1000 tupledır.  -1 belirtilirse işlem tetiklenmeyecektir.

autovacuum_analyze_threshold:

Herhangi bir tabloda  autovacuumu tetiklemek için gereken minimum update,insert,delete sayısını belirtir. Varsayılan değeri 50 tuple.

autovacuum_vacuum_scale_factor:

VACUUM  çalışmasına karar verilirken tablo boyutunun bir kısmını autovacuum_vacuum_threshold parametresini de kullanarak belirtilir. Varsayılan değer 0,2 yani tablonun %20’dir.

autovacuum_vacuum_insert_scale_factor:

autovacuum_vacuum_insert_threshold çalışmasına karar verilirken tablo boyutunun bir kısmını belirtir. Varsayılan değer 0,2 yani tablonun %20’dir.

autovacuum_freeze_max_age:

” Vacuum neden gereklidir” yazımda belirttiğim XID değerinin maksimum sayıyı belirtir. XID kısaca  tamamlanmış transaction id’dir. Bu işlemler diskler de tutulur ve varsayılan değer olarak 200 milyondur. Bu değeri geçmesi durumunda Autovacuum kapalı bile olsa autovacuum işlemi çalışır. Kısacası XID değerinin maximum değeri belirlenir.

autovacuum_vacuum_cost_limit:

Vacuum sırasında çok fazla kaynak kullanımın önüne geçilmesi için kullanılan limitlemedir. Varsayılan değeri 200 olarak tanımlanmıştır. Büyük veritabanlarında bu limiti değiştirebilirsiniz bu parametreyi 0 dediğinizde işleminiz daha hızlı şekilde bitecektir fakat daha fazla da yük oluşacaktır.

autovacuum_vacuum_cost_delay :

autovacuum_vacuum_cost_limit e ulaşan bir temizleme yapıldığında, autovacuum bu belirtilen milisaniye boyunca bekletilecektir.

 

Bu yazımızda Autovacuum nedir ve parametrelerinden bahsettik  tablo bazında autovacuum parametrelerini ayarlamak için Tablo AutoVacuum Parametreleri yazımı inceleyebilirsiniz.

Postgresql.conf parametrelerini incelemek isterseniz postgresql.conf isimli yazıma göz atabilirsiniz.

 

Loading