我正在构建一个运行 Mariadb 10.5、apache、nginx 和 PHP-FPM 的服务器。该服务器有 16 个核心和 32GB 内存。该服务器应该在负载下工作,但实际上却不能,因为 Mariadb 使用了 1500%,这导致整个服务器出现瓶颈。
这是我的 my.cnf
innodb_buffer_pool_size = 15G
innodb_log_file_size = 3G
innodb_log_buffer_size = 256M
max_allowed_packet=1024M
interactive_timeout=30
wait_timeout=120
max_connections = 1000
thread_pool_size=4
skip-name-resolve=1
table_definition_cache=500
performance_schema=ON
max_heap_table_size=1024M
tmp_table_size=1024M
table_open_cache=16000
join_buffer_size=512000
如您所见,我尝试使用 thread_pool_size=4 来限制 CPU 使用率,但没有任何改变。
希望有人能告诉我这里缺少什么
答案1
您使用thread_pool_size=4,但您还需要thread_handling=pool-of-threads才能生效。还请注意,thread_pool_size只是一个提示 - 虽然它试图让4个CPU处于运行状态,但允许为长时间运行的查询创建更多CPU。此外,它不考虑后台innodb线程。