PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Django ORM meninggalkan koneksi idle di Postgres DB

rupanya Anda tidak memutuskan sambungan. Menggunakan db.close_connection() setelah kueri selesai akan membantu. Juga Jika saya melakukannya dengan benar CONN_MAX_AGE untuk beberapa nilai pendek bisa membantu. Dan pertimbangkan untuk menggunakan beberapa session pooler, misalnya pgbouncer untuk koneksi Django. Dengan cara ini jika Anda memiliki terlalu banyak koneksi, itu akan menunggu (atau menggunakan kembali sebelumnya, tergantung pada konfigurasi) alih-alih membatalkan eksekusi dengan kesalahan...

perbarui :penjelasan kenapa saya usulkan

dari dokumen

Jadi jika Anda memiliki lebih banyak utas maka postgres max_connections , Anda mendapatkan kesalahan yang disebutkan. Setiap utas dapat menggunakan kembali koneksi jika CONN_MAX_AGE belum lulus. Pengaturan Anda adalah 0, jadi koneksi harus ditutup setelah kueri selesai, tetapi Anda melihat 100 koneksi menganggur. Jadi mereka tidak menutup. Jumlah koneksi yang besar berarti mereka juga tidak digunakan kembali (logika:jika Anda memiliki 100 kueri paralel, semuanya tidak akan menganggur, dan jika Anda memiliki begitu banyak, mereka tidak digunakan kembali - membuka yang baru). Jadi saya pikir Django tidak menutupnya seperti yang dijanjikan - jadi CONN_MAX_AGE disetel ke 0 tidak berfungsi dalam kode Anda. Jadi saya mengusulkan menggunakan db.close_connection() memaksa pemutusan dan menyetel CONN_MAX_AGE ke beberapa nilai kecil dapat mengubah perilaku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memeriksa apakah tabel postgresql ada di bawah python (dan mungkin Psycopg2)

  2. Konsep Oracle Ketersediaan Tinggi di PostgreSQL

  3. Mengapa psycopg2 adaptor PostgreSQL gagal di Google App Engine dev_appserver.py?

  4. Cara membuat batasan pengecualian dengan rentang tanggal menggunakan sqlalchemy

  5. Bagaimana cara memeriksa apakah ada sesuatu dalam database postgresql menggunakan Django?