我剛剛將我的應用程序部署到VPS,並在apache2 +乘客設置上使用Rails 3.1.3和Ruby 1.9.3-p125。我正在使用最新的gmaps4rails 1.5.2。gmaps4rails在生產機器上運行緩慢
在本地運行應用程序時,我可以非常快速地找到使用gmaps4rails的位置。當我在我的VPS上嘗試這個時,需要60到70秒。如果我說出以下內容,那麼我可以非常快地提交我的表單,但是沒有找到位置。
acts_as_gmappable :check_process => false
在生產服務器上找到它的位置後,它可以正常工作,顯示地圖並在模型中存儲了正確的位置。
更新
當運行我使用的WEBrick並通過相同的測試以開發模式運行的VPS應用程序,它也慢。這排除了apache2,乘客和生產環境。我開始認爲這是VPS的一個問題。
更新
仍在試圖找出爲什麼它需要很長的時間來處理,我採用手動Gmaps4rails在控制檯服務器上,像這樣:
require 'gmaps4rails'
Gmaps4rails.geocode("66 Elizabeth st, Melbourne Victoria Australia")
這花了62秒,與沒有錯誤信息。
更新
閱讀gmaps4rails的源代碼,並認爲這可能是一個問題的所有HTTP
所以我用捲曲來證明這一點
curl www.google.com.au
這花了63秒請求。在我的開發箱上,它是2秒鐘。看起來像是延遲了我在服務器上的http請求。
更新
貌似我目前使用已經有很多DOS最近,也許仍然遇到一些攻擊VPS。這可能會增加網絡延遲和數據包丟失。
你的意思是使用類似延遲工作的Gmaps4rails.geocode(地址) – map7 2012-07-30 13:51:36
是的,沒錯:) – apneadiving 2012-07-30 13:58:15