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

Heroku Postgres DB lebih lambat setelah peningkatan

Saya pernah melihat ini sebelumnya dengan klien yang menelepon saya untuk meminta bantuan darurat.

Setelah melakukan beberapa pencarian dengan heroku bash kami akhirnya menyimpulkan bahwa instance baru berada di server dasar yang sangat sibuk. Kami melakukan failover melalui promosi pengikut ke mesin lain, di mana kinerjanya sangat meningkat - meskipun failover itu sendiri menantang karena masalah dengan master.

Sejauh yang saya tahu, instance Heroku adalah node Amazon EC2 (Xen VMs) yang menjalankan wadah LXC untuk mengisolasi setiap kluster basis data pengguna Heroku. LXC menawarkan isolasi yang lebih sedikit daripada VM penuh; instans dapat bersaing untuk RAM, disk I/O, CPU, dll, tergantung pada kebijakan persis yang dikonfigurasi dengan OpenCZ, kebijakan grup kontrol apa pun, dll.

Jika Anda berada di instans di mana pengguna lain tidak melakukan banyak hal dan jika penampung mengizinkan DB Anda untuk menggunakan sumber daya yang saat ini tidak diperlukan oleh pengguna lain, Anda dapat dengan mudah melihat kinerja yang lebih tinggi dari yang dijamin.

Saya menduga bahwa orang-orang dengan paket heroku yang lebih besar lebih mungkin untuk benar-benar menggunakan sumber daya dari sistem tempat Anda berbagi wadah.

Jika Anda melakukan failover promosi ke instance yang lebih besar di mana semua pengguna berada di sana karena mereka benar-benar membutuhkan sumber daya yang ditawarkan oleh mesin yang lebih besar, Anda sebenarnya bisa mendapatkan lebih sedikit sumber daya secara keseluruhan, karena semua orang benar-benar menggunakan bagian mereka.

Ini membuat frustrasi karena Heroku menawarkan begitu sedikit visibilitas ke dalam sistem yang menjalankan DB mereka. Sulit untuk mengetahui bagaimana/jika mereka memuat keseimbangan antara host kontainer, apa beban yang mendasari pada sistem, dll.

Dalam komentar, @Forrest menunjukkan bahwa Heroku memiliki fungsi yang berguna halaman di detail server mereka , menunjukkan bahwa hanya tingkat yang lebih rendah yang multi-penyewa, tetapi tingkat yang lebih tinggi tidak. Ini akan dengan mudah menjelaskan hilangnya kinerja yang diamati di sini, dan akan sesuai dengan komentar saya di atas bahwa paket yang lebih rendah memungkinkan Forrest untuk meminjam sumber daya yang tidak digunakan dari pengguna lain.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat menggabungkan array

  2. Perbedaan antara set, \set dan \pset di psql

  3. Ganti karakter dengan string multi-karakter

  4. bagaimana cara mengumpulkan banyak nilai sebagai string tunggal di postgres?

  5. Kerangka Yii:Tabel untuk kelas record aktif tidak dapat ditemukan di database