我一直在使用tuning-primer.sh脚本来调整我的my.cnf设置。 我的大部分工作都运行良好,但关于TABLE CACHE的部分没有意义:
TABLE CACHE当前table_cache值= 900个表。
你总共有0个表你有900个开放表。
当前table_cache命中率为1%,而表caching的100%正在使用中。
- Solaris:将TCP的初始拥塞窗口增加到10段(tcp慢启动)
- 服务器基准与Apache基准
- 通过小包丢失的networking提高TCP性能
- NGinx vs Varnish作为Apache前面的反向代理w / php
- 我可以调整我的Debian KVM服务器以使我的Windows客户受益吗?
你应该增加你的table_cache
当我做SHOW STATUS时 我得到以下表格相关的数字:
Open_tables = 900
Opened_tables = 0
好像有什么问题。 我有一些额外的内存可以用来增加table_cache的大小,但是我的感觉是已经可用的900个表没有做任何事情,增加它只会浪费更多的能量。
为什么会发生这种情况? 是否有其他设置,可能会导致所有我的table_cache插槽使用即使没有命中给他们?
我有150个最大连接,每个连接可能不超过4个表,FWIW。
这里是我也一直在调整的临时表的debugging器脚本输出:
温度表
当前max_heap_table_size = 90 M
当前tmp_table_size = 90 M
在11032358个临时表中,有40%是在磁盘上创build的
也许你应该增加你的tmp_table_size和/或max_heap_table_size来减less基于磁盘的临时表的数量。
注意! 内存表中不允许使用BLOB和TEXT列。
如果使用这些列提高这些值可能不会影响磁盘临时表的比例。
TABLE CACHE当前table_cache值= 900个表,这将是所有150个连接的总数。 如果我记得好,每个连接使用他自己的table_cache