【问题标题】:Laravel createConnection Timing OutLaravel createConnection 超时
【发布时间】: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


    【解决方案1】:

    经过大量试验,我得出结论,在我们的 MySQL PDO 连接中打开 Persistent Connections 就是答案。根据我所阅读的内容,我对打开它们有很多保留意见。但是在阅读了这篇文章:Persistent DB Connections - Yea or Nay? 和 Steve Corona 的书“Scaling PHP Applications”之后,打开持久连接是可行的方法。

    【讨论】:

      猜你喜欢
      • 2018-10-24
      • 2016-01-08
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多