2017-02-27 46 views
0

我們一直在使用一家公司來管理我們在亞馬遜的數據庫集羣,經過5年的關係,我失去了對它們的完全信任。亞馬遜RDS和管理我自己的數據庫

幾個月前,我們開始在Heroku上遇到超時,我們被告知是由於太多的消息被寫入了耗用100 GB空間的日誌。我被指示刪除數據(從兩個數據庫中的原始36GB中刪除10GB),然後告訴我們即使刪除數據也沒有有效地回收空間。

我們上週搬到了亞馬遜的一個M1.small實例,兩個小時後我們完全關閉了。一個小時後,他們終於將我們移動到一個M1.xlarge實例。他們寫道:

...realtime monitoring of the affected unit showed very high i/o wait 
times, indicating that the unit was 'disk bound', that is, the delay 
was caused by reads that had to go to disk instead of being found in 
the memory cache 

當我看到(M1)上的配置信息,這似乎令人驚訝,他們選擇了一個選項,更昂貴,這是EBS一個插件。 M4的選擇是較便宜的新一代,包括EBS,不收取額外費用。我在這裏糾正?

因爲我沒有命令行訪問權限,所以當我遇到問題時,我完全依賴於到達數據庫管理員。這導致我們在等待答覆的同時下降了15分鐘。

也許我很天真,但似乎數據庫 - 在適當的環境下,需要很少關注,並且大多數問題都可以通過我自己的命令行訪問來解決。我已經編程了二十年,顯然管理我自己的數據庫多年,但我不是數據庫管理員。你能告訴我管理我自己的數據庫的陷阱嗎,我可能不知道?

我覺得一個錯誤是沒有正確評估我們的需求,然後把我們轉移到一個小實例,只有意識到他們不得不立即擴大規模。我應該分析哪些標準來確定亞馬遜的適當數據庫大小和選擇?

任何其他信息,你可以提供表示讚賞。

回答

0

這些天旋轉新的M1實例是瘋狂的。你是正確的,你應該利用最新的實例類。我猜測他們的數據庫在EC2 Classic環境中運行,而不是更現代的VPC環境,這阻止了使用更新的AWS功能。

你正在使用什麼類型的數據庫引擎?你爲什麼不使用亞馬遜的RDS服務?

+0

我們有InnoDB和MyISam表的組合。老實說,我認爲我們正在利用亞馬遜的RDS服務,並且今天早上才瞭解到我們正在使用M1。您是否有建議轉向InnoDB或評估選擇適當實例的標準? –

+0

由於您是磁盤綁定的,這聽起來像您需要EBS優化的實例類型,除此之外,您只需使用正確的IOPS配置EBS卷即可。確切地確定需要的實例大小以及您需要的IOPS通常歸結爲查看CloudWatch指標以瞭解您的歷史CPU和IOPS使用情況,以確定您需要支持的內容。 作爲一個方面說明,我肯定會建議您考慮遷移到AWS Aurora。 –

+1

請他們採取iostat讀數,並告訴你平均偷竊時間。這些都是共享的,如果基礎設施不堪重負,通常會顯示過度分配。另外,除非將MyISAM表用於信號量或靜態數據,否則最好去InnoDB。 –