MySQL连接问题浅析
MySQL的客户端,无论是PHP或者Java,都会发起多个连接来提高系统的吞吐量。在云里面的服务器,因为一些设计和实现上的不同,有一些问题被放大了,同时也带了一些新的问题。
连接的超时时间
在Azure里面,所有的TCP连接都会通过Azure最外层的网络负载均衡器(SLB),负载均衡器有一个很短的空闲超时,缺省在几分钟。当连接超时的时候,负载均衡器不会通知TCP连接的两端,服务器和客户端都不会得到连接断开的通知。这个行为对许多连接池的实现带来了困扰。所以,对于连接超时时间我们的服务缺省设置为120秒,这个时间确定比负载均衡器的空闲超时要短来避免这个问题。
这个时间同时是对一个查询最长的执行时间。因为在查询的时候是没有网络流量的,负载均衡器会认为这个链接是空闲的。
连接池的使用和大小
我们的服务对于链接的建立做了很多优化,基本上建立一个新连接的时间和在本地的MySQL性能接近,但是新建一个连接的代价仍然是不可忽视的,我们建议使用连接池(JAVA)或者长连接(PHP)。实际代码的例子可以参考http://www.windowsazure.cn/documentation/articles/mysql-database-connection-pool
在使用连接池的时候,建议保持一个比较小的最小连接数,这个数字可以通过观察实际应用的平均压力来确定。
连接池最大的链接数是需要通过对应用程序进行性能压力测试以后决定的。在大多数的情况下,我们服务多个版本(MS1-4)的链接数限制并不是最佳性能的链接数,往往更少的链接数能达到更好的性能。比如MS4的链接数限制是750,但它的最佳的输出性能一般发生在链接数在150-200之间,当然这个值和实际的数据库以及查询有非常大的相关性。
MySQL连接问题浅析的更多相关文章
- 解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。系统发布第二天访问链接关闭问题。
解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题. (默认MySQL连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池. 所以系统发布第二天访问会 ...
- 安装Hive(独立模式 使用mysql连接)
安装Hive(独立模式 使用mysql连接) 1.默认安装了java+hadoop 2.下载对应hadoop版本的安装包 3.解压安装包 tar zxvf apache-hive-1.2.1-bin. ...
- Java Mysql连接池配置和案例分析--超时异常和处理
前言: 最近在开发服务的时候, 发现服务只要一段时间不用, 下次首次访问总是失败. 该问题影响虽不大, 但终究影响用户体验. 观察日志后发现, mysql连接因长时间空闲而被关闭, 使用时没有死链检测 ...
- mysql连接的一些问题。
最近网站出现 User 数据库名称 has already more than 'max_user_connections' active connections 的报错,网站瘫痪.有必要研究下这个问 ...
- 一则线上MySql连接异常的排查过程
Mysql作为一个常用数据库,在互联网系统应用很多.有些故障是其自身的bug,有些则不是,这里以前段时间遇到的问题举例. 问题 当时遇到的症状是这样的,我们的应用在线上测试环境,JMeter测试过程中 ...
- Navicat for MySQL连接MYSQL出错,错误代码1045的解决方法
Navicat for MySQL连接MYSQL
- Mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'
在远程连接mysql的时候,连接不上,出现如下报错:Lost connection to MySQL server at 'waiting for initial communication pack ...
- HTTP长连接和短连接原理浅析
原文出自:HTTP长连接和短连接原理浅析
- MySQL连接池
1. using System; using System.Collections; using MySql.Data.MySqlClient; namespace Helper { /// < ...
随机推荐
- 真机模拟器.a文件编译报错
- Gdata XML解析配置和简单使用
导入libxml2,使用第三方AFNetworking网络请求,第三方XML解析GData GData需要的配置 Build Settings 里搜索,添加如下
- [转载] poll()函数
原地址:http://baike.baidu.com/view/2997591.htm poll()函数:这个函数是某些Unix系统提供的用于执行与select()函数同等功能的函数,下面是这个函 ...
- 基于Eclipse的scala应用开发
原创文章,转载请注明: 转载自www.cnblogs.com/tovin/p/3823968.html 为了更好的学习scala语言,本文介绍如何基于Maven来构建scala项目 1.首先参照www ...
- jenkins创建git任务连接时遇到的问题
jenkins 创建任务后 配置 git时 报错 Jenkins Host key verification failed jenkins: Failed to connect to reposito ...
- sip比较好的博客
http://blog.sina.com.cn/s/articlelist_1796220243_1_1.html
- iOS开发--沙盒路径与操作文件
获取应用沙盒根路径: -(void)dirHome{ NSString *dirHome=NSHomeDirectory(); NSLog(@"app_home: %@",dirH ...
- http://blog.csdn.net/sd0902/article/details/8395677
http://blog.csdn.net/sd0902/article/details/8395677
- Android百度地图开发04之POI检索
POI检索 POI~~~ Point of Interest,翻译过来就是“兴趣点”.我们在使用地图的时候,搜索周边的ktv,饭店,或者宾馆的时候,输入关键字,然后地图展示给我们很多个点, 这些点就是 ...
- 整合Struts2+SiteMesh+Spring+MyFaces(JSF)+Freemarker的时候启动服务器报错ClassNotFoundException: org.apache.struts2.sitemesh.FreeMarkerPageFilter
我一琢磨,难道freemarker与struts2的整合也需要添加一个struts2-freemarker-plugin的jar包? 后来找了半天,确认不需要这个. 然后我就上网搜,这个FreeMar ...