PostgreSQL

Cara Membunuh Sambungan Idle di PostgreSQL

Cara Membunuh Sambungan Idle di PostgreSQL

Langkah pertama dalam membuat perubahan atau membaca beberapa maklumat dari pangkalan data PostgreSQL adalah menjalin hubungan. Sebaliknya, setiap pautan menghasilkan overhead menggunakan prosedur dan penyimpanan. Itulah sebabnya peranti dengan sumber minimum (baca, storan, perkakasan) dapat menyokong gabungan sambungan yang terhad. Setelah agregat terhad melampaui satu titik, itu harus terus melemparkan kesilapan atau menolak sambungan. Di dalam PostgreSQL.conf, PostgreSQL melakukan pekerjaan yang baik untuk mengehadkan pautan. Dalam tutorial ini, kita akan melihat pelbagai bentuk keadaan yang boleh dimiliki oleh pautan PostgreSQL. Kami akan menunjukkan kepada anda cara menentukan sama ada pautan itu aktif atau telah lama tidak aktif, di mana sekiranya ia dapat diputuskan untuk membebaskan pautan dan sumber.

Sambung ke Pelayan:

Pada permulaannya, pastikan pgAdmin4 berfungsi sepenuhnya pada sistem komputer anda. Buka dari aplikasi anda. Anda harus menghubungkannya dengan localhost dengan memberikan kata laluan.

Selepas penyambungan dengan root localhost, sambungkannya dengan pelayan PostgreSQL. Taip kata laluan untuk Pasukan PostgreSQL 13 pengguna untuk disambungkan. Ketuk butang OK untuk meneruskan.

Sekarang anda telah disambungkan ke pelayan PostgreSQL 13. Anda dapat melihat senarai pangkalan data yang berada di pelayan seperti yang ditunjukkan dalam gambar yang dilampirkan di bawah. Pangkalan data Postgres adalah pangkalan data lalai 'yang dibuat pada masa pemasangan PostgreSQL, sementara pangkalan data' ujian 'telah dibuat oleh pengguna setelah pemasangan.

Keadaan Sambungan:

Sekiranya pautan PostgreSQL dibuat, ia mungkin melakukan pelbagai tindakan yang mengakibatkan peralihan keadaan. Keputusan yang rasional harus diambil mengenai sama ada pautan berfungsi atau telah dibiarkan terbiar / tidak digunakan bergantung pada keadaan dan jangka masa ia berada di setiap negeri. Penting untuk diperhatikan bahawa sehingga aplikasi sengaja memutuskan sambungan, aplikasi akan terus beroperasi, membuang sumber lama setelah klien terlepas. Terdapat 4 keadaan berpotensi untuk sambungan:

Kenali Negeri Sambungan:

Jadual katalog PostgreSQL memberikan paparan terbina dalam 'pg_stat_activity' untuk memeriksa statistik mengenai apa yang dilakukan oleh pautan atau berapa lama masa dalam keadaan ini. Untuk memeriksa semua statistik mengenai setiap pangkalan data dan setiap keadaan sambungan, buka alat pertanyaan dan jalankan pertanyaan berikut:

>> PILIH * DARI pg_stat_aktiviti;

Pertanyaan telah dilaksanakan dengan baik, dan nota pencapaian telah ditunjukkan.

Apabila anda memeriksa bahagian output datanya, anda akan menemui jadual dengan beberapa lajur, seperti yang ditunjukkan di bawah. Anda boleh memeriksa keadaan sambungan dengan memeriksa nilai-nilai bidang 'negeri'.

Untuk mempermudah output dan mempunyai idea yang jelas mengenai sambungan, keadaan mereka, pengguna, dan pelayan di negeri tersebut, anda harus menjalankan pertanyaan yang diubah suai di bawah ini dalam alat pertanyaan. Pertanyaan ini hanya menunjukkan 5 bidang rekod untuk sambungan dan data tertentu yang berkaitan dengannya. Lajur 'pid' bermaksud id proses. Lajur 'keadaan' memegang keadaan proses. Lajur 'nama pengguna' mengenal pasti pengguna yang telah melakukan proses tertentu. Lajur 'datname' menentukan nama pangkalan data di mana transaksi telah dijalankan. Lajur 'datid' bermaksud id pangkalan data.

>> PILIH pid, state, nama pengguna nama data, datid, dari pg_stat_activity;

Keluarannya mempunyai 8 proses yang direkodkan. Lajur 'keadaan' menunjukkan bahawa hanya ada 3 proses yang berfungsi sekarang. Satu dipegang oleh pangkalan data lalai 'Postgres dan dua lagi dipegang oleh' ujian 'pangkalan data. Pada masa yang sama, pengguna 'Postgres telah melakukan proses ini.

Kenalpasti Sambungan Menganggur:

"Keadaan" nampaknya satu-satunya nilai yang kami cari dalam hasil yang disebutkan di atas. Kami akan menggunakan maklumat ini untuk menentukan proses atau pertanyaan mana di mana keadaan dan selepas itu menggali lebih mendalam. Kami dapat mengurangkan butiran yang kami cari dengan menyempurnakan pertanyaan, membolehkan kami menyiapkan campur tangan pada sambungan khusus itu. Kita boleh melakukan ini dengan memilih hanya PID yang tidak aktif menggunakan klausa WHERE dan keadaan untuk PID tersebut. Kita juga harus mengawasi berapa lama pautan tidak aktif dan memastikan bahawa kita tidak mempunyai pautan yang diabaikan yang mensia-siakan sumber daya kita. Akibatnya, kami akan menggunakan perintah yang diulang-ulang di bawah ini untuk hanya memaparkan rekod yang relevan dengan proses yang sedang tidak berfungsi:

>> PILIH pid, nama pengguna, useysid, datid, datname, application_name, backend_start, state_change, state FROM pg_stat_activity WHERE state = 'idle';

Pertanyaan tersebut hanya memperoleh 2 catatan data di mana keadaan 'menganggur' menggunakan klausa WHERE. Hasilnya menunjukkan 2 proses terbiar dengan maklumat tertentu yang berkaitan dengannya.

Bunuh Sambungan Menganggur:

Setelah mengenal pasti sambungan terbiar, sekarang masa untuk membunuhnya. Sebaik sahaja kita mengurang prosesnya dalam keadaan tahan atau tidak aktif untuk jangka masa yang lebih lama, kita dapat menggunakan perintah mudah untuk menghentikan mekanisme back-end dengan mudah tanpa mengganggu aktiviti pelayan. Kita harus menyediakan proses 'id' dalam pertanyaan dalam fungsi penghentian.

>> PILIH pg_terminate_backend (7408);

Proses ini telah dibunuh dengan hebat.

Sekarang periksa baki sambungan terbiar dari pertanyaan yang dilampirkan di bawah.

>> PILIH datid, usename, datname, pid, state FROM pg_stat_activity WHERE state = 'idle';

Keluaran menunjukkan hanya 1 proses yang tinggal, yang tidak berfungsi.

Kesimpulan:

Pastikan tidak melewatkan langkah untuk membunuh sambungan yang tidak aktif dari pangkalan data PostgreSQL dengan cekap.

Mengawal & menguruskan pergerakan tetikus antara beberapa monitor di Windows 10
Pengurus Tetikus Paparan Dwi membolehkan anda mengawal & mengkonfigurasi pergerakan tetikus antara beberapa monitor, dengan memperlahankan pergerakann...
WinMouse membolehkan anda menyesuaikan & meningkatkan pergerakan penunjuk tetikus pada PC Windows
Sekiranya anda ingin meningkatkan fungsi lalai penunjuk tetikus anda gunakan perisian percuma WinMouse. Ia menambah lebih banyak ciri untuk membantu a...
Butang klik kiri tetikus tidak berfungsi pada Windows 10
Sekiranya anda menggunakan tetikus khusus dengan komputer riba, atau komputer desktop anda tetapi butang klik kiri tetikus tidak berfungsi pada Window...