2014-03-06 61 views
1

我最近開始使用OpenShift作爲NodeJS + MongoDB應用程序的可伸縮平臺。除了經過一段時間(主要在幾小時或幾天之內)之後,我的應用程序突然變得無法啓動,我得到了所有的工作。我認爲我的應用停止有兩個原因。一個原因是MongoDB連接超時,這可能是一個簡單的可解決的錯誤,通過在使用數據庫之前檢查數據庫是否仍然連接。Openshift NodeJS + MongoDB應用程序突然停止

但是,另一個原因是NodeJS突然停止監聽新的請求。我不確定會發生什麼情況以及此行爲的原因是什麼,但是當發生這種情況時,我必須通過ssh手動重新啓動應用程序,並且在生產環境中這是不可接受的。因爲我沒有得到任何錯誤,除了我(可能)有一個可擴展的應用程序,目前使用2個齒輪,一個用於NodeJS應用程序和一個用於MongoDB數據庫,因此我不能提供任何更多的細節。我使用MongooseJS連接到數據庫。目前我仍然在免費計劃中,但是一旦有更多的流量來臨,生病的可能會是白銀計劃(假設縮放實際上有效)。

我希望有人能爲我提供一些建議或解決方案。

真誠,

Hylke勒布朗

回答

0

所以有一些事情你應該知道的。第一個是怠速,如果你的應用程序在48小時內沒有收到任何外部http請求,它將被閒置。然後,一旦發出http請求,應用程序將自動恢復在線狀態。

如果您經常收到外部http請求,那麼接下來我們需要檢查的是您的應用程序的日誌。您可以檢查您的應用程序的日誌,但運行rhc tail <yourappname>

+0

我知道怠速,但情況並非如此,因爲它在今晚再次發生,在應用程序重新啓動後2小時內因爲它停止響應請求,應用程序再次停止響應請求。我檢查了日誌,但不是通過rhc tail ,而是通過tail_all使用putty和一些密鑰哈希登錄到ssh shell。我認爲這是相同的,那些日誌不會告訴我任何事情。如果即時檢查我的日誌文件,請告訴我,但我沒有看到任何奇怪的地方。 –

+0

由於您的應用程序是可擴展的,因此數據庫和框架將分開運行。你是否在兩個齒輪上檢查日誌? 如果不嘗試運行'rhc app show rails4 --gears',然後ssh進入你的數據庫設備,看看有沒有錯誤。 – niharvey

+0

我試圖ssh進入數據庫的齒輪,但它給了我一個識別錯誤,可能是因爲我不明白如何使用膩子設置正確的私鑰(即時通訊有點這些東西noobot),所以如果我不知道明天生病讓人來了誰可以。但我曾經收到通知,一旦數據庫將關閉,我有記錄,並且這些日誌從不出現,所以我不認爲數據庫是問題(但我不知道,直到我檢查它的課程)。假設,是否有一個邏輯簡單的事情來檢查數據庫是否不是問題? –