2015-11-15 70 views
1

我一直在使用Google Cloud很長一段時間,一切正常。我使用單個VM實例來託管網站和MySQL數據庫。Google VM實例本身變得不健康

最近,我決定將網站移動到自動縮放,以便在流量增加的日子裏,網站不會停止。

因此,我將數據庫移至Cloud SQL並創建一個虛擬機組,它將託管PHP,HTML,圖像文件。然後,我設置了一個負載均衡器,將流量轉移到虛擬機組下的各種虛擬機實例。

問題是後端服務(負載平衡器內部的虛擬機組)在工作5-6小時後自行變得不健康,並在10-15分鐘後再次變得健康。我也看到,當我運行一個有很多MySQL查詢有點冗長的文件時,問題就出現了。

我檢查了健康檢查,它給了200響應。在10-15分鐘的停機期間,VM實例可以從它自己的IP地址訪問。

一切都一樣,我剛剛在VM實例前面添加了一個負載平衡器,並且問題已經開始。

任何人都可以幫我解決這個問題嗎?

回答

0

聽起來您的服務器在運行狀況檢查時發現超時(阻塞?),負載平衡器將其報告爲關閉。有幾件事情你可以檢查:

  1. 日誌(?我假設你使用Apache),應包括在日誌中的請求狀態一起的持續時間。默認運行狀況檢查超時時間爲5秒,因此如果運行狀況檢查在6秒內返回200,則運行狀況檢查程序將在5秒後超時並將主機視爲關閉狀態。

  2. 你提到一個沉重的MySQL負載可能導致問題。你看過磁盤I/O統計和CPU,以確保這不是一個負載相關的問題?如果這與CPU或負載有關,則可能會考慮增加CPU或磁盤大小,或者將磁盤從主軸支持移動到SSD支持的存儲。

  3. 你是否檢查過你有足夠的線程可用?理想情況下,您的運行狀況檢查運行速度相當快,但可能會延遲(例如),如果您有3個線程,並且所有三個都忙於運行其他正在數據庫中等待的PHP腳本