发现 thread_cache_size 原来设置好小,这个默认值实质上也偏小,建议大的web项目,要调大这个值。
一、多大算合适 :
说实话我也不是很清楚,但是查阅了N多中文,英文资料,大部分:
1. show status like
'threads%';
看以下几个值:
Variable_name Value
Threads_cached 0
Threads_connected 51
Threads_created 655068
Threads_running 48
可以不断刷新,如果
Threads_cached = 0 且
Threads_created 不断增大,那么当前
thread_cache_size的
值设置要改大,改到 Threads_connected 值左右,再结合物理内存 1G —> 8;2G —> 16; 3G —> 32; >3G —> 64 二个情况综合考虑一下值。
注译:
Threads_cached :代表当前此时此刻线程缓存中有多少空闲线程。
Threads_connected :代表当前已建立连接的数量,因为一个连接就需要一个线程,所以也可以看成当前被使用的线程数。
Threads_created :代表从最近一次服务启动,已创建线程的数量。
Threads_running :代表当前激活的(非睡眠状态)线程数。并不是代表正在使用的线程数,有时候连接已建立,但是连接处于sleep状态,这里相对应的线程也是sleep状态。
二、如何修改
vi /etc/my.cnf 配置文件,[mysqld] 下增加
thread_cache_size = 64
别忘了需mysql重启 service mysql restart 或 /etc/rc.d/init.d/mysql restart 后才生效!