【发布时间】:2015-12-19 17:12:34
【问题描述】:
最近我开始使用 New Relic 来分析我的应用程序,我遇到了一些奇怪的东西。每隔一段时间,我的应用程序就会挂起 15-20 秒然后失败。深入研究后,我发现 percona mysql 的 createConnection 方法在我的 Laravel5 应用程序中超时。
这是 Laravel5 源码中的违规方法: https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Connectors/Connector.php#L48-L63
我的堆栈中有两个实例在运行同一个应用程序。每个人每分钟对数据库进行大约 100-400 次调用,具体取决于负载均衡器是否指向该特定实例。
我想知道是否有办法阻止这种情况发生。我的一些想法:
- 为 PDO 连接打开持久连接。
- 更改 MySQL 设置,不确定是哪个。 (如果您想查看当前选项,请告诉我)。
- 将 PHP 设置为 5 秒后超时以停止当前连接。
非常感谢您的想法和想法。
【问题讨论】:
标签: php mysql laravel pdo laravel-5