Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
除了MySQL并发连接限制外,PHP/Apache在断开连接方面起到了什么作用?_Php_Mysql_Database Connection_Shared Hosting_Vps - Fatal编程技术网

除了MySQL并发连接限制外,PHP/Apache在断开连接方面起到了什么作用?

除了MySQL并发连接限制外,PHP/Apache在断开连接方面起到了什么作用?,php,mysql,database-connection,shared-hosting,vps,Php,Mysql,Database Connection,Shared Hosting,Vps,如果MySQL正在删除PHP应用程序中的连接,并且MySQL连接限制设置为高于应用程序中的并发用户数,那么还有哪些因素会导致这种行为?此外,通过分析moodle日志(这些服务器上运行的唯一应用程序),昨天我的活动增加了4倍,但它没有丢弃任何东西,但今天有几次,它让丢弃的连接数量感到沮丧 我这里的主要问题是,为什么数据库拒绝连接,而它以前没有拒绝连接,活动增加了4倍(而且一切都是一样的,在这两者之间我没有做任何更改) 一些背景:我的主机上有两台服务器: 运行DebianLinux/PHP5.3(

如果MySQL正在删除PHP应用程序中的连接,并且MySQL连接限制设置为高于应用程序中的并发用户数,那么还有哪些因素会导致这种行为?此外,通过分析moodle日志(这些服务器上运行的唯一应用程序),昨天我的活动增加了4倍,但它没有丢弃任何东西,但今天有几次,它让丢弃的连接数量感到沮丧

我这里的主要问题是,为什么数据库拒绝连接,而它以前没有拒绝连接,活动增加了4倍(而且一切都是一样的,在这两者之间我没有做任何更改)

一些背景:我的主机上有两台服务器:

  • 运行DebianLinux/PHP5.3(FastCGI)的共享服务器
  • 运行Debian Linux/MySQL 5.1.39的VPS
在这个环境中,我只运行moodle 1.9.12(用于使用adoDB和持久连接的数据库连接),php部分在共享服务器上,数据库在VPS上。我怀疑,通过在共享服务器上运行PHP,其他托管帐户正在影响我(我的意思是,数据库拒绝连接,我真的不关心RAM/CPU)


读到关于这个问题的文章,我在一些地方看到,持久连接作为CGI/FastCGI不能很好地与PHP配合使用,而且如果两台服务器都在本地lan中,那么使用持久连接或不使用持久连接实际上并不重要,因为连接无论如何都会很快。所以现在我使用的不是持久性连接。我想这可能是问题的一部分,但我不明白为什么它工作负载更大。这里涉及哪些PHP/Apache设置?

由于您的数据库和web服务器位于两台不同的机器上,因此还有两个可能的原因:中间的网络和操作系统的网络层

如果您没有更改配置中的任何内容,并且之前配置的负载更高,那么这很可能是两台机器之间的网络连接问题。由于数据库机器是一个VPS,您也不知道它正在处理多少实际网络负载。如果您的ISP有称职的支持人员(不幸的是,情况并非总是如此),询问他们是否有解释也无妨

您的“共享”web服务器也是如此。虽然不太可能,但这并非不可能,因为该机器上的连接太多

了解您测量断开连接的准确程度也会有所帮助。如果您正在查看mySQL的中止连接计数器,它不一定是实际问题的度量值:。用户中止页面加载可能会增加此计数器


如果PHP抛出错误,因为它无法连接到服务器或在查询过程中与服务器失去连接,则这是一个问题。

由于数据库和web服务器位于两台不同的计算机上,因此还有两个可能的原因:中间的网络和操作系统的网络层

如果您没有更改配置中的任何内容,并且之前配置的负载更高,那么这很可能是两台机器之间的网络连接问题。由于数据库机器是一个VPS,您也不知道它正在处理多少实际网络负载。如果您的ISP有称职的支持人员(不幸的是,情况并非总是如此),询问他们是否有解释也无妨

您的“共享”web服务器也是如此。虽然不太可能,但这并非不可能,因为该机器上的连接太多

了解您测量断开连接的准确程度也会有所帮助。如果您正在查看mySQL的中止连接计数器,它不一定是实际问题的度量值:。用户中止页面加载可能会增加此计数器

如果PHP抛出一个错误,因为它无法连接到服务器或在查询过程中与服务器失去连接,那么这就是一个问题