2

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

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

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

4

1 回答 1

0

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

于 2013-11-05T00:38:14.857 回答