减少 MariaDB/MySQL 线程数

减少 MariaDB/MySQL 线程数

所以我在单核服务器上运行 MariaDB 10 数据库;不是超级强大,但我的需求也不是很大。

然而,我注意到的一件事是,如果我查看,列表中htop会显示大约 28 个条目,我相信这是一个进程加 27 个线程(因为默认情况下会像进程一样列出线程)。mysqlhtop

然而,这似乎很多,因为我的数据库配置为使用限制为 8 个线程的线程池,而不是每个连接默认的一个线程,而且它甚至没有使用所有这些线程(目前是两个) ,那么另外 25 个线程是做什么用的呢?有什么办法可以减少这个数字吗?

我知道这不一定是问题,但是我很少遇到缓慢的查询(>0.5 秒而不是通常的 <1 毫秒,因为我的大多数查询都非常简单),并且似乎线程过多可能是潜在的罪魁祸首,如果太多人突然醒来。

这个线程数正常吗?有没有办法可以进一步减少它,或者这些额外的线程是否在做一些重要的事情?

sudo grep thread /etc/mysql/my.cnf

thread_stack            = 256K
thread_cache_size       = 8
thread_handling         = pool-of-threads
thread_pool_max_threads = 8
thread_pool_stall_limit = 200

答案1

这些线程有不同的用途。有一个启动并等待关闭的主线程,Innodb和Aria中有几个后台线程,等等。

附加gdb并执行thread apply all bt以查看他们在做什么 - 很可能他们坐在那里什么也不做,等待某些事件发生。

相关内容