首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql高cpu负载

Mysql高cpu负载
EN

Server Fault用户
提问于 2021-03-20 07:04:11
回答 1查看 334关注 0票数 0

我有一个专用的服务器,48核,128 GB的Ram,2 nvme与RAID。我有一个相当大的WordPress站点,有5GB的MySQL数据库。该网站的并发流量为200至700名用户。服务器总是显示MySQL会导致较高的内存和CPU htop截图。我尝试了许多增强来减少负载,但是我没有找到一个满意的解决方案。我发现MySQL以100%的速度消耗磁盘,如顶层截图图片顶部所示。我试图跟踪mysqltuner.pl,这是它的结果mysqltuner结果,这是my.cnf内容:

代码语言:javascript
复制
tmp_table_size = 10G
query_cache_type=1
query_cache_size = 65M
query_cache_limit=256K
query_cache_min_res_unit = 2k
innodb_buffer_pool_size = 7409M
innodb_buffer_pool_instances=8
join_buffer_size = 256M
sort_buffer_size = 256M
read_buffer_size = 256M
read_rnd_buffer_size = 256M
innodb_log_file_size = 256M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_allowed_packet=268435456
open_files_limit=40000
innodb_file_per_table=1

高级致谢

EN

回答 1

Server Fault用户

发布于 2021-03-20 22:59:13

代码语言:javascript
复制
tmp_table_size = 10G

不是的!如果13个用户同时运行一个非常大的查询,这可能会填满RAM!建议降低内存的1%。假设只有500米。

那么,这如何导致高I/O呢?一个顽皮的查询首先会填满10G,然后如果需要更多的空间,它将把它写到磁盘上。

进行这种查询的最简单方法是JOIN两个没有ON子句的大表。

一个通用的帮助(对于CPU,以及潜在的I/O)是改进postmeta上的索引:http://mysql.rjweb.org/doc.php/index_烹饪书_mysql#speeding_向上_wp_后元

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1057689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档