我想知道在哪個階段需要將 RDS MySQL 伺服器的映像增加到更大的 CPU/RAM 實例。
CPU 使用率圖表接近 0。平均交換使用量為 420MB。
讀取延遲為 0-20ms/op,它會隨機上升。平均寫入延遲平均為 5 毫秒/操作,但峰值可達 10-20 毫秒/操作。
這裡有一些我應該遵循的共同規則嗎?
謝謝!
答案1
沒有共同的規則
性能規則需要根據業務和技術目標來設定,而不是任意的。
您試圖解決或預防什麼效能問題?
指標並不等於效能,而且通常與業務甚至技術目標關係不大。
通常我會關注績效的兩個面向。
- 我需要監控哪些指標來滿足績效目標?
- 我希望維持多少資源開銷來確保滿足這些效能目標。
在沒有其他數據的情況下純粹關注資料庫資源指標可能不是很有用。這些指標需要上下文 - 否則它只是過早的最佳化。
如果您知道利用率,此類指標對於容量規劃非常有用。
所以也許更重要的問題是:
- 在高峰使用水準下,我的應用程式的效能是否在可接受的範圍內?
- 在尖峰使用時,我的資源利用率是多少?
- 依照預期的成長,我的資源利用率是多少?
我經常發現人們關注我所說的 ping、電源和管道(CPU/磁碟/RAM)。這些很少是需要關注的重要事情。
取得數據並針對上述問題設定目標將有助於您根據技術和業務理由做出可擴展性決策。
答案2
從我對 RDS 實例的觀察來看,FreeableMemory 相當低,SwapUsage 相對較高。看來您的工作負載是記憶體密集型的,並且至少會透過增加記憶體來改善。
為了獲得更一致的延遲,如果您已經分配了至少 300GB 的存儲,則可以選擇預先配置 IOP:http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.html