PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Heroku Postgres DB по-бавен след надграждане

Виждал съм това и преди с клиент, който ми се обади за спешна помощ.

След известно ровене с heroku bash в крайна сметка заключихме, че новото копие е на особено натоварен основен сървър. Направихме преход чрез промотиране на последовател към друга машина, в който момент производителността се подобри значително - въпреки че самото прехвърляне беше предизвикателство поради проблемите с главния.

Доколкото знам, екземплярите на Heroku са възли на Amazon EC2 (Xen VM), които изпълняват LXC контейнер, за да изолират клъстерите на базата данни на всеки потребител на Heroku. LXC предлага доста по-малко изолация, отколкото пълна VM; екземплярите могат да се борят за RAM, I/O диск, CPU и т.н., в зависимост от точната политика, конфигурирана с OpenCZ, правилата на всяка контролна група и т.н.

Ако сте в екземпляр, където другите потребители не правят много и ако контейнерът позволява на вашата DB да използва ресурси, които в момента не се изискват от други потребители, можете лесно да видите стабилно по-висока от гарантираната производителност.

Подозирам, че хората с по-големи планове за heroku е по-вероятно действително да използват ресурсите на системата, с която споделяте контейнер.

Ако направите промоция при срив към по-голям екземпляр, където всички потребители са там, защото те наистина се нуждаят от ресурсите, предлагани от по-голямата машина, всъщност можете да получите по-малко ресурси като цяло, защото всеки всъщност използва своите дялове.

Разочароващо е, че Heroku предлагат толкова малко видимост в системите, които управляват техните DB. Трудно е да се каже как/ако балансират натоварването между хостовете на контейнери, какво е основното натоварване на системата и т.н.

В коментар @Forrest посочи, че Heroku има полезен страница с подробности за техния сървър , което показва, че само по-ниските нива са многонаемни, но по-високите нива не са. Това лесно би обяснило наблюдаваната тук загуба на производителност и би се вписало в моите коментари по-горе, че по-ниският план позволява на Forrest да заема неизползвани ресурси от други потребители.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres:Грешка при използване на GROUP BY и ORDER (на heroku)

  2. Как да вмъкнете и извлечете изображение от PostgreSql с помощта на C#

  3. Как да получите списък с имена на колони и типове данни на таблица в PostgreSQL?

  4. Как да се предпазим от SQL инжектиране, когато клаузата WHERE се изгражда динамично от формуляра за търсене?

  5. Как мога да вмъкна коментари на колони в PostgreSQL чрез Python?