2013-07-06 225 views
4

我們在我們的Heroku應用上遇到了數據庫查詢時間問題,並且使用腳本來設置一個新的測試應用,這個腳本可以ping我們的MongoLab數據庫服務器和Google。 MongoLab數據庫服務器與Heroku應用程序位於同一數據中心。Heroku延遲問題

到數據庫服務器的RTT大約爲3ms。現在,即使在測試服務器上,我也會看到很多抖動。您可以在這裏看到我的ping腳本的輸出:http://damp-citadel-6004.herokuapp.com/test - 延遲頻繁波動到30ms範圍內,有時甚至進入ms範圍的100s。

我只是想知道這是Heroku的正常行爲嗎?如果是這樣,Heroku將不再是一個可行的選擇,因爲我們需要MongoLab連接的低延遲。由於時間添加到查詢中,目前的延遲量正在殺死我們的應用程序。

Heroku堆棧是Cedar,它位於US-EAST,就像MongoLab db一樣。

任何幫助,將不勝感激。

回答

0

我很好奇你怎麼知道你的heroku dynos和mongolab的實例在同一個數據中心?以某種方式通過IP?你真的可以確定嗎?這兩種服務都在美國東部1區域使用多個可用區域,據我所知,不要讓您指定資源所在的偏好或報告。同樣的應用程序可能會有2個heroku dynos,並且從它的聲音中可能會生活在不同的AWS AZ中。毫無疑問,不同的數據中心位於不同的數據中心,我相信即使一些可用性區域跨越多個數據中心。

無論如何,你不是唯一的一個。我最近在同一亞馬遜地區從heroku和我自己的ec2實例到mongolab和mongohq都出現了頻繁的連接問題。 Mongohq的支持也表示,他們在我們東區1的不同AZ中的EC2實例之間也存在連接問題,並暗示AWS支持最近承認了一些網絡級別/安全組縮放問題。我能夠找到這篇文章:http://orensol.com/2009/05/24/network-latency-inside-and-across-amazon-ec2-availability-zones/這表明您觀察的延遲非常高。

也許與此相關,我也遇到了EC2中的DNS解析器 - 包括heroku - 到mongolab和mongohq的問題。即使是權威服務器都屬於亞馬遜的路由53區域。總而言之,現在us-east-1的可用性區域之間的連接似乎不是100%,所以儘管我鼓勵您嘗試其他基於EC2的數據庫服務,但您可能沒有看到任何區別。

+0

這應該只是一條評論,或者應該合併到更有用的東西。 – Benny