【发布时间】:2014-09-07 15:01:20
【问题描述】:
我正在工作的网络初创公司的并发网络用户数量从平时的 5000 人激增到周末的 10000 人。这个星期六的流量如此之高,以至于我们开始间歇性地收到“连接过多”错误。我们的 CTO 通过简单地增加 tatabase 服务器上的 max_connections 值解决了这个问题。我想知道在这里使用一个持久连接是否是更好的解决方案?
即而不是使用:
$db = new mysqli('db_server_ip', 'db_user', 'db_user_pass', 'db_name');
我们使用:
$db = new mysqli('p:db_server_ip', 'db_user', 'db_user_pass', 'db_name');
我们已经在使用多个 MySQL 服务器以及多个 Web 服务器 (Apache + mod_php)。
【问题讨论】:
-
我们确实关闭了连接!我说的是并发用户过多时的问题。
-
您需要所有这些连接吗?你能减少服务器上的负载吗?通过使用 HTML 或片段缓存?
-
也许您需要调整 MySQL 服务器和/或查询?此外,每天 10K 连接并不是很多——大约每 8 秒就有一个。 Web 服务器上的峰值请求/秒是多少(假设它们捆绑在一起)?
-
10k 并发用户。每日用户约为 50 万。
-
啊,对了,错过了一点!正如我上面建议的那样,有什么机会可以减少连接数?