【问题标题】:Propel and Persistent Connections推动和持久的连接
【发布时间】:2012-11-03 09:29:36
【问题描述】:

我在使用 propel 作为带有 PHP 的 ORM 与 Amazon RDS 数据库进行大量并发连接时遇到问题。该应用程序在负载测试期间运行良好,一次打开 20 到 50 个连接,然后似乎撞到了墙,几乎立即达到最大连接数,然后一切都死了。

我相信 Propel 正在使用 mysql_pconnect,但我找不到它指定的位置,或者一个简单的方法来关闭它。我可能在这里追逐红鲱鱼,但我很困惑,网上有足够多的 cmets 关于 pconnect 导致连接太多的问题,我认为值得一试将其删除。

有人知道怎么做吗?我一直在使用各种短语搜索,似乎找不到任何东西。

【问题讨论】:

  • 您使用的是哪个版本的 Propel?
  • 我们使用的是 1.6 版
  • 我不认为 Propel 默认使用持久连接,至少看起来 at the code 它使用来自配置文件的信息。和don't define PDO 中的持久连接。
  • 我看不到你在里面指的是什么。一般持久连接用mysql_pconnect,非持久连接用mysql_connect。除非推进使用自定义连接器?这可能是我在代码中找不到它的原因。
  • 不,它使用 PDO,从 1.3 版开始,它不使用 mysql_connect 也不使用 mysql_pconnect ...

标签: propel mysql-pconnect


【解决方案1】:

事实证明,错误是由 RDS 重做日志引起的。所有 RDS 实例大小只有一种大小。在较大的实例大小上,可以填充重做日志并在数据写入数据库之前回到开头。在这一点上,它会做“疯狂刷新”的事情来赶上,不处理任何新的请求,它们像疯了一样堆积起来。这最终导致我们的应用程序崩溃。更小的 RDS 服务器解决了这个问题,尽管亚马逊对此并不满意。他们需要能够更改重做日志的大小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2017-07-12
    • 2012-05-26
    • 2010-12-20
    • 1970-01-01
    相关资源
    最近更新 更多