2012-10-19 103 views
4

我在Heroku上有一個Web應用程序,我試圖理解添加一個Memcached實例與1GB內存和添加1GB內存到我的Postgres服務器之間的差異/折衷。Heroku Postgres RAM緩存vs Memcache內存

如果我添加了一個Memcached實例,我可能會使用Johnny Cache(用於Django - http://packages.python.org/johnny-cache/)。

我應該從兩個選項中獲得類似的性能改進嗎?一般來說,使用內存緩存與增加Postgres緩存大小的優點是什麼。 (據我所知,人們通常在數據庫服務器上運行memcache,因此必須有一個)。

我很欣賞這可能是一個非常天真的問題,但我一直無法找到任何解決我通過谷歌混淆。

回答

1

爲了獲得最佳性能,Postgres需要足夠的緩存來保留最常用的對象(索引,表)。所以設置shared_buffers有一個臨界點。在那之後, 增加共享緩衝區沒有多大幫助。

爲文件系統級高速緩存留下部分RAM是很好的做法。

對於更見http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server

至於內存緩存,這是完全不同的野獸......它可以直接從應用程序中使用有超快速的非持久性鍵值存儲。

所有這三個特性都使memcached與關係數據庫(RDB)有所不同。

  • 超高速(RDB都沒有)
  • 非持久性(RDB是)
  • 鍵值只(RDB更好)
+0

感謝。查詢結果是否不被postgres緩存? – alan