Mysql
AWS - MySQL 伺服器“服務 CPU 使用率”停留在 50%/被限制?
我有一個執行 Windows Server 2012 和 MySQL 的 c4.large EC2 實例。
當我查看機器上的 CPU 使用率時,似乎 MySQL 在系統處於負載狀態時將 CPU 使用率限制在 50%,看起來這也與某種節流有關,但我不確定為什麼會發生這種情況.
c4.large 實例帶有 2 個 vCPU 和專用 ECU,我可以從下面的螢幕截圖中看到它們都在使用,但也許這兩者的總和有上限?
我不確定這是 MySQL 問題還是與 Amazon Web Services 相關的潛在系統問題,或者是我這邊的某種錯誤配置。
有誰知道為什麼會這樣?
這可能既不是節流也不是錯誤配置,也不是與 AWS 相關的任何事情。考慮以下幾點:
- 一個
c4.large
實例有 2 個核心。- 在 MySQL 中執行的任何給定查詢完全在單個執行緒中執行,並且
- 程序中的單個執行緒在任何時候只能在一個核心上執行(儘管推測 Windows 程序調度程序可以隨意在核心之間移動它),並且
- 1 個執行緒對 1 個核心的 100% 使用率將顯示為 50% 的 CPU 使用率。
您在這裡所擁有的,而不是伺服器真正“處於負載下”,是一個單一的 CPU 密集型查詢正在執行。
任何具有
PROCESS
權限的使用者都可以在 MySQL 中執行SHOW FULL PROCESSLIST;
查詢,並查看 MySQL Server 中的所有會話(連接)執行緒目前正在做什麼。執行它,你應該會找到你的 CPU 豬。如果您執行同一查詢的另一個實例,您應該會發現 CPU 使用率達到 100%,同時執行兩個 CPU 昂貴的查詢。(然後您需要修復/優化該查詢。)該TIME
列告訴您連接處於目前狀態的時間。