PostgreSQL, database dan DBMS terpopuler keempat tahun 2017, telah meledak popularitasnya di antara komunitas pengembangan dan database di seluruh dunia. Mencuri pangsa pasar dari pemimpin Oracle, MySQL, dan Microsoft SQL Server, hosting PostgreSQL juga sangat dimanfaatkan oleh bisnis baru di ruang yang menarik seperti IoT, e-commerce, SaaS, analitik, dan banyak lagi.
Jadi Apa yang Sedang Tren di Manajemen PostgreSQL?
Kami menghadiri PostgresOpen di San Francisco bulan lalu untuk mengungkap tren terbaru dari para pakar itu sendiri.
Tugas Manajemen PostgreSQL yang Paling Menghabiskan Waktu
Jadi, apa yang menghabiskan waktu Anda di bidang manajemen PostgreSQL? Meskipun ada ribuan tugas yang terlibat dalam mengelola penerapan produksi PostgreSQL Anda, mengelola kueri adalah yang terdepan dengan lebih dari 30% responden.
Mengelola ruang sangat jauh dengan 15% pengguna PostgreSQL menganggapnya sebagai tugas tersulit mereka, diikuti dengan replikasi, peningkatan, dan pemantauan. 23% pengguna PostgreSQL termasuk dalam kategori "Semua lainnya", yang terdiri dari tugas-tugas seperti patching, pemulihan, partisi, dan migrasi.
Mengelola Perincian Kueri PostgreSQL
Dengan memimpin jauh dalam mengelola kueri PostgreSQL, kami mempelajari lebih dalam untuk melihat tugas spesifik apa yang menghabiskan waktu mereka. Hasil tersebar di seluruh proses pengelolaan kueri, mulai dari penataan saat penyiapan hingga pengoptimalan setelah analisis.
Untuk menjelaskan ini lebih lanjut, mari kita mulai dari awal proses pengelolaan kueri:
Struktur Kueri
Segmen terkecil, yang mengelola struktur kueri, menyumbang 22% tanggapan dari pengguna PostgreSQL yang memilih kueri sebagai tugas pengelolaan yang paling memakan waktu.
Sebelum memulai, Anda perlu membuat rencana kueri PostgreSQL di sekitar kluster Anda untuk mencocokkan struktur kueri dengan properti data Anda. Ini terdiri dari node, mulai dari scan node di tingkat bawah untuk tabel baris mentah kembali, bersama dengan baris non-tabel seperti nilai.
Analisis Kueri Lambat
Setelah Anda menetapkan struktur, langkah selanjutnya adalah menganalisis kueri Anda untuk mengidentifikasi kueri yang berjalan lambat yang dapat memengaruhi kinerja aplikasi Anda. Secara default, “kueri lambat” didefinisikan sebagai kueri yang membutuhkan waktu lebih dari 100 md.
Mengoptimalkan Kueri
Sekarang setelah Anda mengidentifikasi kueri lambat Anda, pekerjaan sebenarnya dimulai – mengoptimalkan kueri PostgreSQL Anda. Penyesuaian kinerja Postgres bisa menjadi tugas yang mengerikan, tetapi dengan identifikasi dan analisis yang tepat, Anda dapat mengasah kemacetan dan membuat perubahan kueri yang diperlukan dan menambahkan indeks jika diperlukan untuk meningkatkan eksekusi Anda. Berikut artikel bagus tentang kueri penyetelan kinerja di PostgreSQL.
Tren PostgreSQL Terbaru:Tugas yang Paling Banyak Menghabiskan Waktu &Metrik Penting untuk DilacakKlik Untuk Tweet
Metrik Paling Penting untuk Dilacak untuk Performa PostgreSQL
Setelah kita mengidentifikasi tugas pengelolaan PostgreSQL yang paling memakan waktu, mari kita lihat lebih dalam metrik penting yang dilacak pengguna PostgreSQL untuk mengoptimalkan kinerja mereka.
Hasil metrik PostgreSQL yang paling penting secara signifikan lebih merata daripada tugas manajemen, menghasilkan ikatan empat arah antara statistik replikasi, penggunaan CPU &RAM, transaksi per detik (TPS) , dan kueri lambat:
Statistik Replikasi
Memantau status replikasi PostgreSQL Anda adalah tugas penting untuk memastikan replikasi Anda dijalankan dengan benar dan penerapan produksi Anda tetap tersedia. Proses replikasi harus disesuaikan agar paling sesuai dengan kebutuhan aplikasi Anda, dan pemantauan titik akhir berkelanjutan adalah cara terbaik untuk memastikan data Anda aman dan siap untuk pemulihan.
Sangat penting untuk melacak metrik di server siaga dan server utama Anda. Server siaga Anda harus dipantau untuk replikasi masuk dan status pemulihan, dan server utama Anda harus dipantau untuk replikasi keluar dan slot replikasi. Jika Anda menggunakan replikasi streaming PostgreSQL, slot replikasi tidak selalu diperlukan. Replikasi streaming memastikan ketersediaan data langsung di server siaga Anda dan ideal untuk server dengan TPS rendah.
Penggunaan CPU &RAM
Melacak penggunaan CPU dan RAM (memori) Anda adalah metrik penting untuk dipantau guna memastikan kesehatan server PostgreSQL Anda. Jika penggunaan CPU Anda terlalu tinggi, aplikasi Anda akan mengalami perlambatan yang membuat pengguna Anda menderita. Ini sering kali merupakan hasil dari kueri yang tidak dioptimalkan dengan baik, atau bahkan paralelisme kueri yang tinggi. Memantau RAM sangat penting untuk memastikan Anda memiliki cukup ruang disk, dan untuk memahami dengan tepat untuk apa RAM Anda digunakan. Sebaiknya alokasikan sekitar 25% memori Anda untuk shared_buffers. PostgreSQL juga menetapkan ukuran buffer memori kerja secara default ke 4 MB, yang seringkali terlalu kecil dan menghasilkan waktu eksekusi yang tinggi.
Transaksi Per Detik
Memantau jumlah transaksi per detik memungkinkan Anda menentukan beban pada sistem dan throughput saat ini. Dengan menganalisis metrik ini, seseorang dapat memutuskan untuk menskalakan sistem yang sesuai untuk mencapai throughput yang diinginkan. Anda juga dapat menentukan bagaimana perubahan dalam pengaturan konfigurasi atau sumber daya sistem memengaruhi throughput.
Kueri Lambat
Kueri yang tidak efisien dapat memperlambat kinerja PostgreSQL bahkan jika sistem dikonfigurasi dengan sumber daya yang memadai. Itu selalu merupakan praktik yang baik untuk menganalisis kueri yang tidak efisien ini dan memperbaikinya. PostgreSQL menyediakan parameter yang disebut log_min_duration_statement . Ketika ini disetel, itu menyebabkan durasi setiap pernyataan yang diselesaikan dicatat jika pernyataan itu berjalan setidaknya dalam jumlah milidetik yang ditentukan. Setelah kueri lambat diperoleh, Anda dapat menjalankan EXPLAIN ANALYZE untuk memahami rencana eksekusi. Ini akan memungkinkan Anda untuk melacak masalah dan mengoptimalkan kueri yang sesuai. Oleh karena itu, memantau kueri lambat secara teratur akan menghindari kelambatan kinerja.
Temukan kami minggu depan di acara PostgresConf Silicon Valley 2018 di mana kami berharap dapat mengungkap lebih banyak wawasan tentang apa yang sedang tren di ruang manajemen PostgreSQL. Jika Anda memiliki pertanyaan atau komentar, jangan ragu untuk membagikannya dengan kami di sini di komentar kami atau di Twitter di @scalegridio.