PHP Apache 增加每个客户端的最大并发连接数

Posted

技术标签:

【中文标题】PHP Apache 增加每个客户端的最大并发连接数【英文标题】:PHP Apache Increase Maximum Number of Concurrent Connections per Client 【发布时间】:2012-08-25 06:16:36 【问题描述】:

我想使用 XAMPP 同时运行数十个长时间运行的 php 脚本。每个脚本运行 2 小时以上,不使用会话、cookie 等。

在我的第一次测试运行中,我尝试在浏览器上打开其中的 10 个脚本,但实际上只有我打开的前六个开始执行(我知道这一点,因为在每个脚本开始时,我都会立即打开一个文件在那里写入状态更新——除了前 6 个脚本之外,任何脚本都不会写入任何内容。

是否可以在每个脚本的顶部放置一个代码,或者我可以更改一些 PHP 设置,或者我可以通过任何其他方式来制作它,以便我可以同时运行任意数量的 PHP 脚本?


编辑这里是如何做到这一点:

1) 从此处下载 PowerShell 2(或与您的 Windows 版本兼容的版本):http://support.microsoft.com/kb/968929

2) 安装它并重新启动您的计算机。

3) 创建一个新文件“example.ps1”并将其保存到您选择的目录中(例如 c:\examples\example.ps1)。将此代码放入该文件中:

start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\1.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\2.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\3.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\4.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\5.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\6.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\7.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\8.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\9.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\10.php
start-job .\c:\xampp\php\php C:\xampp\htdocs\phpfiles\11.php

4) 点击“开始”->“运行”并输入“powershell”(不带引号)。

5) PowerShell 启动后,输入以下内容并回车:

Set-ExecutionPolicy RemoteSigned

然后按“y”设置更改。

6) 现在输入(确保输入完整的文件路径):

c:\examples\example.ps1

7) 要查看您的职位,只需输入:

get-job

要停止作业,请使用以下命令:

stop-job JobName

【问题讨论】:

更好地适应服务器故障 为什么要在apache里面运行? @Jack,我在本地计算机上运行它(Windows XP)。除了在 Apache 内部之外,还有其他方法可以运行它吗?\n@bretterer,谢谢,我不知道 serverfault.com cron 作业或计划作业,但绝对最好从 CLI 运行(是的,您可以使用 xampp 安装运行 CLI 任务) 是的,你可以使用命令行 php;顺便说一句,要回复任何人,请使用 @ 后跟他们的句柄,谢谢 【参考方案1】:

浏览器将阻止同时连接。使用命令行,您也会遇到更少的超时问题。 Plus 输出是即时的,因此您可以一直回显。

【讨论】:

谢谢,我没有意识到是我的浏览器 (Firefox) 阻止了同时连接,我也没有意识到这可能是超时的原因,以及有关实时回显的有用信息。您是否有任何示例说明如何使用命令行运行多个脚本?【参考方案2】:

您必须通过浏览器运行脚本吗?直接从终端使用 php-cli 运行这样长时间运行的脚本不是更容易吗?这样,您就可以启动任意数量的进程。

【讨论】:

以上是关于PHP Apache 增加每个客户端的最大并发连接数的主要内容,如果未能解决你的问题,请参考以下文章

javaNIO通信

Apache 服务配置

如何监控Apache性能及调整Apache的并发连接数

Tomcat并发数优化,修改service.xml性能调优 增加最大并发连接数

关于Socket高并发的原理介绍及使用Apache Mina带来线上的问题分析

apache当前并发访问数是啥?apache进程数,子进程数都是啥意思呀??