我在本地和DotCloud上建立了Rails 3.2.12應用程序。我對Dotcloud看到很慢的ActiveRecord(Postgres的)性能並不能明白爲什麼:ActiveRecord Postgres DotCloud(EC2)產品比Macbook空氣開發速度慢8-10倍
頁面加載的Macbook Air(開發模式的Rails應用程序):
Completed 200 OK in 617ms (Views: 361.3ms | ActiveRecord: 39.1ms)
頁面加載DotCloud (Rails應用在生產模式下,相同的數據塊和頁面):
Completed 200 OK in 796ms (Views: 315.3ms | ActiveRecord: 329.4ms)
這不是一個不穩定的時間,但在所有的頁面加載標準的性能三角洲。我的數據庫只有16MB,所以不大。在postgres服務上的內存分配是足夠的(128MB),只有30MB被使用。我檢查了我的本地postgres.conf,並且這些設置是默認的,未修復的postgresql.app設置。
這是不好的表現,只是在雲中期待什麼? Web服務器和數據庫服務器之間的網絡延遲是多少?
非常感謝如何調試&解決這個問題!
雲中的硬件是什麼?不要空氣有超快速SSD? – AdamT 2013-03-06 19:35:37
Dotcloud在EC2上,所以它就是它們所在的位置。但有了一個16MB的數據庫,postgres應該使用內存和緩存整個事情,而不是依靠磁盤......任何方式來調整? – n8vision 2013-03-06 19:59:01
您需要做的第一件事是在兩臺機器上啓用PostgreSQL中的查詢持續時間記錄,然後比較查詢持續時間。看看這是一個數據庫級別的問題還是更高級別的問題。另外:機器的整體內存狀態是什麼?磁盤I/O負載? – 2013-03-06 23:39:50