Pada umumnya konfigurasi default Postgresql memiliki performa yang rendah, hal ini dikarenakan penggunaan resource, terutama RAM ( Random Access Memory atau Memori) masih rendah. Apalagi untuk komputer server zaman sekarang yang mampu menampung RAM hingga lebih dari 10 GB. Bagi yang membutuhkan performa lebih dari Postgresql, mungkin beberapa hal di bawah ini bisa bermanfaat untuk melakukan Tune Up Performa Postgresql.
Semua hal dibawah ini dilakukan pada file postgresql.conf
max_connections = <num>
Parameter ini menentukan jumlah koneksi maksimum yang bisa ditampung oleh Postgresql. Jumlah koneksi yang diberikan sebaiknya disesuaikan dengan kondisi yang ada. Jumlah koneksi yang terlalu besar, padahal tidak terpakai akan menurunkan performa Postgresql. Nilai default nya adalah 100 koneksi. Sebagai bahan pertimbangan jumlah koneksi, kita bisa melihat jumlah koneksi real yang terjadi di Postgresql, caranya dengan memberikan perintah query sebagai berikut :
- select count (*) from pg_stat_activity;
shared_buffers = <num>
Mengubah parameter ini merupakan cara yang paling sederhana untuk meningkatkan performa Postgresql. Nilai default yang diberikan sangat kecil, yaitu hanya 32 MB. Aturan umum yang bisa digunakan, 25% dari total RAM sebaiknya dialokasikan pada parameter ini. Namun, untuk mendapat hasil yang optimal, kita perlu mencoba-coba berapa nilai yang paling tepat. Pada beberapa sistem, memberikan nilai yang terlalu besar pada parameter ini akan mengakibatkan kegagalan startPostgresql. effective_cache_size = <num>
Parameter ini menyatakan berapa jumlah memory yang bisa digunakan untuk cache data, dan juga membantu menentukan apakah index akan dipakai atau tidak. Semakin besar nilainya, maka kemungkinan penggunaan index akan semakin besar. Nilai yang bisa digunakan pada parameter ini = nilai shared_buffers + nilai cache OS. Biasanya nilai ini lebih dari 50% dari total memory pada sistem. Sama seperti shared_buffers, memberikan nilai yang terlalu besar akan mengakibatkan kegagalan startPostgresql. work_mem = <num>
Parameter ini menentukan jumlah memory yang digunakan pada operasi sorting dan hash table. Nilai yang diisikan disini adalah nilai yang digunakan per operasi. Jadi jika kita memberikan nilai 10 MB, dan memberikan perintah query yang kompleks yang berisi 5 tahap sorting dan hash table, maka jumlah memory yang digunakan adalah 5×10 MB. Belum lagi kalau ada 5 client yang sekaligus melakukan proses yang sama, maka jumlah memory yang digunakan adalah 5x5x10 MB. Pada Postgresql versi lama, parameter ini bernama sort_mem.fsync =<boolean>
max_fsm_pages = <num>
Parameter ini memungkinkan Postgresql untuk melakukan commit beberapa transaksi secara bersamaan sehingga bisa meningkatkan performa. commit_delay menentukan waktu delay dalam microsecond sebelum data WAL di tulis ke disk. Jadi jika ada transaksi yang akan di commit, tidak langsung di commit, melainkan dia akan menunggu transaksi lain yang juga akan commit selama commit_delay. Seluruh transaksi yang akan commit dalam rentang waktu commit_delay akan di commit secara bersamaan.
random_page_cost = <num>
Sumber : blog.sangkuriang.co.id - Wiki
Komentar
Posting Komentar