Mysql 第2条密切联系

Mysql 第2条密切联系,mysql,doctrine-orm,Mysql,Doctrine Orm,我在mysql中使用doctrine 2 PDO 在对服务器进行压力测试时,mysql报告了大量中断的连接(高达20%) 我正试图找出问题所在 Mysql手册建议确保正确关闭与数据库的连接。 我找不到任何关于doctrine是否真的关闭了连接,或者是否使用了持久连接的信息 另外,还有什么可以解释中止连接的原因吗?我在这里不知所措 PS.Server是ubuntu 10.04、nginx 1.x、php 5.3.5(fpm)和mysql 5.1.41据我观察,条令使用持久连接 我们偶然发现了一个

我在mysql中使用doctrine 2 PDO

在对服务器进行压力测试时,mysql报告了大量中断的连接(高达20%)

我正试图找出问题所在

Mysql手册建议确保正确关闭与数据库的连接。

我找不到任何关于doctrine是否真的关闭了连接,或者是否使用了持久连接的信息

另外,还有什么可以解释中止连接的原因吗?我在这里不知所措


PS.Server是ubuntu 10.04、nginx 1.x、php 5.3.5(fpm)和mysql 5.1.41

据我观察,条令使用持久连接

我们偶然发现了一个问题,在symfony2中启动了单元测试,在该测试中,数据库被垃圾发送,连接处于“睡眠”状态。对我们有效的解决方案是:

$entityManager->getConnection()->close();

我也有同样的问题

$entityManager->getConnection()->close(); 
似乎可以工作,但如果您添加

 gc_collect_cycles() 
在关闭连接之后。 在旧版本的php中,我仍然存在这种问题,我想可能与垃圾收集器有关。
如果我找到所有php版本的最终解决方案,将不断更新您的信息。我发现了以下调整:


在PhpUnit XML选项文件中设置
processIsolation=“true”
选项似乎可以达到目的。

Doctrine2手册建议使用APC或其他缓存机制。未能提供一个可能会导致大量连接。你有吗?我有用于元数据和查询的APC缓存。您是否有手册中描述如何缓存连接的链接?没有,但如果缓存被禁用,则条令必须更频繁地刷新更改,打开更多到数据库的连接。条令不会刷新任何内容。开发者是这样做的。问题是如何在学说中密切联系。你显然不知道答案。我知道如何密切联系,但我怀疑这是否有帮助。是API引用,请像使用
$em->getConnection()->close()
一样使用它。但是条令自动有密切的联系,所以你不应该这么做。你能告诉我你什么时候给close打电话吗?我们尝试在kernel.terminate或kernel.response事件中执行此操作,但mysql中的连接仍然挂起。我在单元测试中使用了它,所以它是在tearDown方法中使用的。对不起,我帮不了你多少忙。我仍然看到打开的连接列表在增长-/在我的例子中,gc_collect_cycles()解决了执行PHPUnit测试时出现的“连接太多”错误