![CPU 使用率高,内存使用率低于 5% (MYSQL)。我应该添加更多 CPU 核心吗?](https://linux22.com/image/776634/CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E9%AB%98%EF%BC%8C%E5%86%85%E5%AD%98%E4%BD%BF%E7%94%A8%E7%8E%87%E4%BD%8E%E4%BA%8E%205%25%20(MYSQL)%E3%80%82%E6%88%91%E5%BA%94%E8%AF%A5%E6%B7%BB%E5%8A%A0%E6%9B%B4%E5%A4%9A%20CPU%20%E6%A0%B8%E5%BF%83%E5%90%97%EF%BC%9F.png)
我当前的服务器有 12 个核心和 96GB 的 RAM。但由于我的 MYSQL 查询,服务器的使用率始终高达 100%,而 RAM 的使用率却不到 5%。我知道主要问题在于 SQL 查询。从日志中可以看出,有些查询会汇总所有列中的值。现在由于应用程序非常庞大,短期内无法优化查询。
作为短期解决方案,我是否应该购买一台具有 32 个核心的新服务器?或者是否有办法将部分处理能力转移到服务器的 RAM 上?这样,超过 90GB 的 RAM 就不会浪费了。
答案1
不。
我还没有看到过 MySQL 服务器在耗尽其他资源之前就耗尽核心的情况。
通常,通过添加更好的索引(尤其是复合索引)和/或重新制定一些慢速查询可以解决高 CPU 使用率问题。
找到慢查询并让我们讨论它们。 SlowLog
“低 RAM 使用率”通常意味着 的值太低innodb_buffer_pool_size
。该设置应为 RAM 的 70% 左右。但是,较低的设置通常意味着高 I/O,而不是高 CPU。请向我们展示SHOW CREATE TABLE
一些SELECT...
顽皮的查询。