最近我也遇到相同的问题,在并发较高的时候,如果没有长连接,新建网络连接会造成大量的资源浪费。 当PHP的运行环境为Nginx+PHP-FPM时,用pconnect会造成已经建立的连接不会释放的同时又不断的新建连接,最终后果是很快消耗掉所有可用的网络IO。 我考虑可以使用mysql-proxy连接池,但是同时也出现了问题,不知道是不是ro-pooling脚本的问题,在使用过程中产生大量的1105错误,大概意思是backends down之类的错误,调整脚本也没有效果。 后来又研究sqlrelay,大概在05、06年时我使用过sqlrelay,当时给我留下的印象并不好,需要大量改造程序不说,还有事务错误的问题,所以这次没有优先考虑sqlrelay,不过今天看到从上次使用以来发布过不少版本,而且还可以做到不需改造直接使用,所以打算做一下测试看。 目前还没有找到更好的解决方案,大家讨论一下哈。
最近我也遇到相同的问题,在并发较高的时候,如果没有长连接,新建网络连接会造成大量的资源浪费。
当PHP的运行环境为Nginx+PHP-FPM时,用pconnect会造成已经建立的连接不会释放的同时又不断的新建连接,最终后果是很快消耗掉所有可用的网络IO。
我考虑可以使用mysql-proxy连接池,但是同时也出现了问题,不知道是不是ro-pooling脚本的问题,在使用过程中产生大量的1105错误,大概意思是backends down之类的错误,调整脚本也没有效果。
后来又研究sqlrelay,大概在05、06年时我使用过sqlrelay,当时给我留下的印象并不好,需要大量改造程序不说,还有事务错误的问题,所以这次没有优先考虑sqlrelay,不过今天看到从上次使用以来发布过不少版本,而且还可以做到不需改造直接使用,所以打算做一下测试看。
目前还没有找到更好的解决方案,大家讨论一下哈。