max_connections
该参数代表mysql数据库的最大连接数,参数默认是200,显然不适用于生产,生产配置10000,如果请求大于默认连接数,就会出现无法连接数据库的错误,在生产环境中,我们可能经常会遇到too many connections的报错信息。
解决方法:
*可以适当调大max-connectionsde值,这里需要注意在调大的时候,需考虑数据库能否承担这么多连接数带来的压力,如果值调的特大,就容易出现实例宕机的情况,所以压力测试也是很重要的一环。
*调整innodb内部并发数,通过innodb_thread_concurrency参数进行控制,该参数从mysql5.6开始默认为0.
0代表并发数不受限制,(生产配置0)这里建议调整为服务器上逻辑CPU核数的两倍,可以先改成16或者64,如果非常大,可以向该小一点,让服务器的压力下来,之后再慢慢增大,建议先调整为16即可。
*mysql数据库随着连接数的增加性能会下降,可以考虑使用thread-pool技术,让连接复用,需要企业版,mariadb,或自己开发。
*有的监控程序会读取infomation_schma小面的表,可以考虑关闭下面的参数
innodb_stats_on_metadata OFF (生产关闭)