【发布时间】:2021-09-09 15:13:11
【问题描述】:
在增加从应用程序到 MySQL 40000 的池连接总数时收到此错误 ER_CANT_CREATE_THREAD。
MySQL conf 文件如下所示
innodb_buffer_pool_size=100G # from 128M to use half of your RAM for data/index storage
innodb_buffer_pool_instances=32 # from 1 to reduce mutex contention
innodb_lru_scan_depth=1024 # from 1024 to conserve 90% of CPU cycles used for function
max_connections=65536
max_prepared_stmt_count=204800
max_connect_errors=100000
thread_cache_size=8192
innodb_log_buffer_size = 256M
query_cache_size = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64
innodb_thread_concurrency = 0
innodb_io_capacity = 2000
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
【问题讨论】:
-
您允许 Docker 拥有多少内存?其中许多设置非常高。
-
我没有在 docker 上设置任何 RAM 分配。只在 mysqld conf 文件上设置....
-
你的机器上至少有 128GB 的空间吗?
-
是的机器是 128gb 内存
-
max_connections=65536高得不合理,也许很危险。将其降低到 5000。