今天上午的"连接太多"问题.还有人看到这个吗



这是今天早上才开始的。我注意到CloudSQL正在警告存在DB问题。其他人也看到了什么?

我认为我们没有遇到CPU、存储或内存限制的问题。

严重性:警告

Message: mysqli::real_connect(): (HY000/1040): Too many connections
Filename: mysqli/mysqli_driver.php
Line Number: 192
Backtrace:

在内部,我看到连接很好,但有两条线很诡异。

| 189167 | filesuser            | 104.154.65.50:53044 | files      | Query   |    0 | Opening tables        | SET SESSION sql_mode =
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
@@sql_mode,
" |

|
| 189170 | unauthenticated user | 104.154.65.50:53052 | NULL       | Connect |    0 | Receiving from client | NULL                                                                                                 |
| 189172 | unauthenticated user | 104.154.65.50:53042 | NULL       | Connect |    0 | Receiving from client | NULL 

我假设这个^来自谷歌监控。

这个SET SESSION sql_mode语句是完全正常的。不用担心。而且,因为它设置的是会话模式,而不是全局模式,所以它的范围是有限的。这就是php程序如何设置服务器以匹配其使用SQL的方式。

至于连接不足:你有没有遇到过流量高峰?当有太多php实例同时运行时,就会发生这种情况。这是一个常见的错误;我的服务器有很多内存。让我们取可用的RAM,除以php实例的平均大小。这就是我们应该允许的并发php实例的数量"这是不正确的。矛盾的是,更多的实例会导致吞吐量降低:您的服务器机器和MySQL软件必须管理并发,这会变得昂贵并降低速度。Web服务器机器,尤其是基于UNIX的机器,如Linux或FreeBSD,具有非常强大的连接请求队列,可以优雅地处理激增。

您应该将并发php实例限制在50个左右,甚至更少,即使您有数百个实例的RAM。

这不太可能是一个涉及您使用的云SQL服务的多个客户的广泛问题。

相关内容

  • 没有找到相关文章

最新更新