我運行〜500實時遊客,〜50K每天遊客和〜1,3million總用戶網站。我在AWS上託管我的服務器,我使用了幾種不同類型的實例。當我啓動網站時,不同的實例花費相同。當網站開始獲取用戶時,RDS實例(MySQL DB)的CPU始終保持在屋頂上,我不得不多次升級它,現在它已經開始佔據性能的主要部分和每月成本(約95% (2,8k $ /月))。我目前使用的是具有16vCPU和64GiB RAM的數據庫服務器,我還使用多可用區域部署來防止故障。 我想知道數據庫的價格是否太高是正常的,還是我做了一些非常錯誤的事情?MySQL服務器非常高負載
數據庫信息
目前我的數據庫有他們中的大多數40個表有10萬行,有些人〜2millions和1個有3000萬。 我有一個系統的檔案行大於21天,當他們不再需要了。
網站信息
網站主要使用PHP,但也有一些和的NodeJS蟒蛇。
大部分網站的功能是這樣的:
- 開始交易
- 插入行
- 獲得最後插入的ID(lastrowid)
- 做一些計算
- 更新插入排
- 更新用戶
- 提交tran saction
我也從數據庫中以10-30秒的間隔運行100bots輪詢,他們也插入/更新數據庫有時。
額外
我做了幾件事情要儘量降低數據庫的負載。如啓用數據庫緩存,對某些查詢使用redis緩存,嘗試刪除非常慢的查詢,嘗試將存儲類型升級到「Provisioned IOPS SSD」。但似乎沒有任何幫助。
這是改變我所做的設置paramters:
我雖然有關創建幾個較小的情況下的一個MySQL集羣,但我不知道這是否會幫助,並我也不知道這是否適用於交易。
如果您需要更多信息,請詢問,對此問題的任何幫助都非常感謝!
您說過您嘗試升級到預配置IOPS,但您是否已經將可用IOPS最大化?你是否仍在充分利用可用的IOPS?您需要查看「每秒讀取操作」和「每秒寫入操作」,看看它們是否受可用IOPS的限制。 –
此外,我會建議測試Aurora以查看它是否對您更好。 –