我正在面对一个在线服务的MySQL实例的真正问题。 我们用这些设置来使用hibernate和c3p0池:
c3p0.max_size=200 c3p0.min_size=5 c3p0.timeout=60000 c3p0.max_statements=20 c3p0.idle_test_period=300 c3p0.acquire_increment=3 c3p0.unreturnedConnectionTimeout=70000
我注意到th服务(网站)被拒绝,因为它拒绝连接。 我loginMySQL控制台,并show processlist列表30显示列表30睡眠(命令)连接到有关的数据库。 这让我担心。 我们每次都希望有200个连接,并使MySQL的最大连接数为300.这是我的。 CNF
key_buffer = 16M max_allowed_packet = 16M thread_stack = 128K thread_cache_size = 8 max_connections = 300 #table_cache = 64 #thread_concurrency = 10
完整my.cnf
我做了一个小的研究,我看到table_cache大小必须相应地更新。 该机是运行ubuntu 9.10服务器的4核ram的四核机器
cat / proc / cpuinfo
**问题1:**如何强制c3p0释放空闲连接。
**问题2:**我需要修正哪些tache_cache和所有其他参数,以便服务器充分利用其潜力并且不拒绝连接
**问题3:**重新启动Tomcat后,MySQL连接数降至4.我需要尽快解决此问题,我需要您的经验。 但是我想在未来的一段时间里也能获得这样的经验。 你应该从MySQL的性能调整中推荐什么样的书来集群。
Mysql调优可以通过几个脚本实现
Mysqltuner,mytop,mysqlreport,tuning-primer …这些脚本会给你关于你的服务器的详细信息…
例如检查下一个链接
http://www.serveradminblog.com/2011/03/tuning-mysql-performance-howto-part-1/
优化是一个永无止境的任务,但是这里有一些可能有所帮助的事情:
max_connect_errors (我使用10,但你可以尝试更多) table_open_cache :2048是我使用,但这取决于您的应用程序中的表的数量。 query_cache_size (即64 MB)