初始环境:一台windows 2003服务器,上面跑有 apache,mysql应用服务。
迁移后: 服务分离,把apache服务放到一台配置较高的 windows 2003服务器上,mysql暂时不动。
1、
在迁移的过程中出现了一些异常的的问题,具体表现是在服务访问压力比较大情况下,出现以下错如信息,有时候刷新下就没有了:
Can't connect to MySQL server on 'x' (10048)
检查了下系统繁忙时候的apache连接数,不高,是正常的,,于是放狗搜索,原来是这样的问题:
应用程序需要快速释放和创建新连接, 但是由于 TIME_WAIT 中存在的连接超过默认值,导致较低吞吐量.
一般见于使用mysql的windows 2003服务器.
ok,刚好对应,找到问题后,马上解决,对该 mysql 服务器进行参数修改(具体怎么修改就不啰嗦了,网上一大堆)
就等着第二天访问压力大的时候,看看情况,结果槽糕,,还是一样,还是不解!!
2、
由于不能解决问题,应该和操作系统的关系比较大,于是打算把2003上的mysql数据库迁移到那台linux上,说干就干,迁移过去后,嘿嘿,还真有用,观察了个2天,没有出现原来的问题。
3、
有天,在访问压力比较大的时候,又出现了原来的问题,这下傻眼了,不知道从哪下手。
仔细分析问题后,试着把那台apache服务器的连接参数也修改了(和修改mysql服务器的方法一样),,观察了一段时间,再也没有出现类似的问题。
问题所在:
由于迁移前没有出现这样的问题,是由于apache和mysql是在同一台 windows 2003 服务器上,数据库连接是不通过TCP连接的,所以不会牵扯 TCP 连接的相关参数设置,当迁移后,数据库的连接就要通过 TCP 的连接建立,会和 TCP 的连接参数打交道,而这个连接和2台机器的 TCP 连接参数都有关系,所以当访问压力大的时候,就造成连接资源的消耗。
阅读(1693) | 评论(1) | 转发(0) |