我目前的伺服器有 12 個核心和 96GB RAM。但由於我的 MYSQL 查詢,伺服器的使用率始終高達 100%,而 ram 卻低於 5%。我知道主要問題是 SQL 查詢。從日誌中可以看出,這是一些對所有欄位中的值求和的查詢。現在,由於應用程式非常龐大,短期內不可能優化查詢。
作為短期解決方案,我應該購買一台 32 核心的新伺服器嗎?或者有沒有辦法將部分處理能力轉移到伺服器的 RAM 上?這樣超過 90GB 的 RAM 就不會浪費。
答案1
不。
我還沒有見過一個 MySQL 伺服器在耗盡其他資源之前就耗盡了核心。
通常,高 CPU 使用率可以透過添加更好的索引(尤其是複合索引)和/或重新制定一些慢速查詢來解決。
找到慢查詢並讓我們討論它們。 慢日誌
“RAM 使用率低”通常意味著innodb_buffer_pool_size
.此設定應約為 RAM 的 70%。然而,較低的設定通常意味著高 I/O,而不是高 CPU。請向我們展示SHOW CREATE TABLE
並SELECT...
解答一些頑皮的疑問。