MYSQL 消耗所有 CPU - WooCommerce

MYSQL 消耗所有 CPU - WooCommerce

我们有一个使用 WordPress + WooCommerce 的商店。

我们的服务器有 24 个 CPU 和 128GB RAM。有几天我们同时收到多个订单,CPU 完全超载,网站长时间瘫痪。

我们正在使用 MariaDB 10.2

有谁有过这样的经验,这是否正常或者配置有错误?

这是我的配置文件的相关部分:

#
# * Fine Tuning
#
max_connections         = 500
connect_timeout         = 5
wait_timeout            = 600
max_allowed_packet      = 16M
thread_cache_size       = 128
sort_buffer_size        = 4M
bulk_insert_buffer_size = 16M
tmp_table_size          = 32M
max_heap_table_size     = 32M

#
# * MyISAM
#
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched. On error, make copy and try a repair.
myisam_recover_options = BACKUP
key_buffer_size         = 128M
#open-files-limit       = 2000
table_open_cache        = 400
myisam_sort_buffer_size = 512M
concurrent_insert       = 2
read_buffer_size        = 2M
read_rnd_buffer_size    = 1M

#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
default_storage_engine  = InnoDB
# you can't just change log file size, requires special procedure
#innodb_log_file_size   = 50M
innodb_buffer_pool_size = 256M
innodb_log_buffer_size  = 8M
innodb_file_per_table   = 1
innodb_open_files       = 400
innodb_io_capacity      = 400
innodb_flush_method     = O_DIRECT

答案1

key_buffer_size我猜想由于和值太小,您的磁盘 i/o 过多innodb_buffer_pool_size。没有确切的建议来调整它们,但您应该注意以下几点:

key_buffer_size应该大于 MYISAM 索引的总量,以便将它们全部放入 RAM 中。

innodb_buffer_pool_size如果有可用 RAM,最好是所有 INNODB 表大小的 1.4 * 倍。

您必须非常小心地调整join_buffer_sizesort_buffer_size以及其他值,例如 read_buffer_size 和 read_rnd_buffer_size、线程堆栈)值,因为它们用于每个连接,并且对于最多 500 个同时连接,您很容易超出实际可用的 RAM。

无论如何,在调整之前,您必须mysqltuner首先启动并彻底检查报告的每一行。请记住,给出的建议mysqltuner是一般性的,可能不适合您具体的情况。

答案2

对于您的 my.cnf-ini [mysqld] 部分,请考虑以下建议(即使此时只有部分 my.cnf-ini 可见)。

read_buffer_size=128K  # from 2M to minimize read data requirements 

read_rnd_buffer_size=256M  # from 1M  to minimize read data requirements 

thread_cache_size=100  # from 128  for V8 suggested CAP to avoid Out Of Memory 

随着所需信息的数据可供分析,其他机会也将变得明显。

相关内容