Pendahuluan
PostgreSQL adalah sistem manajemen basis data relasional yang powerfull dan fleksibel. Namun, untuk memaksimalkan kinerjanya di mesin dengan 10 core CPU dan 200GB memory, konfigurasi yang tepat sangat penting. Artikel ini akan membahas bagaimana cara mengoptimalkan instalasi PostgreSQL sehingga dapat memanfaatkan semua sumber daya komputer dengan efisien.
Konfigurasi Memory
- shared_buffers: Ini merupakan cache internal PostgreSQL. Untuk mesin dengan RAM sebesar 200GB, pertimbangkan untuk mengalokasikan sekitar 25% dari total RAM, yaitu sekitar 50GB.
shared_buffers = 50GB
- work_mem: Memori yang digunakan untuk operasi sorting dan hash table. Konsiderasikan nilai sekitar 1GB atau lebih, tergantung pada kompleksitas query yang Anda jalankan.
work_mem = 1GB
- maintenance_work_mem: Memori untuk operasi pemeliharaan seperti VACUUM. Anda bisa mengalokasikan sekitar 5GB untuk setting ini.
maintenance_work_mem = 5GB
Konfigurasi CPU
- max_worker_processes: Tingkatkan jumlah ini untuk memperbolehkan lebih banyak proses pekerja. Untuk mesin 10 core, pertimbangkan setting ini sekitar 10.
max_worker_processes = 10
- max_parallel_workers_per_gather: Tingkatkan jumlah pekerja paralel untuk satu query. Nilai optimal mungkin antara 5-8 untuk mesin 10 core.
max_parallel_workers_per_gather = 7
- max_parallel_workers: Set jumlah total pekerja paralel. Anda bisa mengeset ini sama dengan jumlah core, yaitu 10.
max_parallel_workers = 10
Tips Tambahan
- Tingkatkan Concurrency: Dengan menggunakan pooling koneksi seperti PgBouncer, Anda bisa meningkatkan jumlah koneksi simultan yang di-handle oleh PostgreSQL.
- Pastikan Konfigurasi OS: Pastikan sistem operasi telah dikonfigurasi dengan benar untuk manajemen memory dan CPU. Pertimbangkan untuk menyesuaikan parameter sysctl, serta konfigurasi NUMA jika diperlukan.
- Monitor: Gunakan alat pemantauan seperti
pg_stat_statements
danpg_stat_activity
untuk mengawasi kinerja dan pemanfaatan sumber daya secara real-time.
Kesimpulan
Dengan mengoptimalkan konfigurasi PostgreSQL pada mesin dengan 10 core CPU dan 200GB memory, Anda dapat memastikan bahwa basis data Anda berjalan dengan efisien, memaksimalkan potensi sumber daya yang ada. Tetap lakukan pemantauan dan penyesuaian secara berkala untuk hasil terbaik.