我有一个专用的服务器,48核,128 GB的Ram,2 nvme与RAID。我有一个相当大的WordPress站点,有5GB的MySQL数据库。该网站的并发流量为200至700名用户。服务器总是显示MySQL会导致较高的内存和CPU htop截图。我尝试了许多增强来减少负载,但是我没有找到一个满意的解决方案。我发现MySQL以100%的速度消耗磁盘,如顶层截图图片顶部所示。我试图跟踪mysqltuner.pl,这是它的结果mysqltuner结果,这是my.cnf内容:
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高级致谢
发布于 2021-03-20 22:59:13
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_后元
https://serverfault.com/questions/1057689
复制相似问题