【问题标题】:Opening more than two connections to apache per client每个客户端打开两个以上到 apache 的连接
【发布时间】:2012-02-19 04:19:39
【问题描述】:

这里有点奇怪的问题。我们正在将网站迁移到新的软件平台。作为此迁移的一部分,我们必须将文件从一个 Amazon S3 存储桶复制到另一个存储桶。有数十万个文件。

我们还必须使用我们拥有的软件 (phpFox) 来执行此操作。基本上是一个php框架。

作业被分成我们使用 URL 中的偏移量调用的段。

基本上: 复制 10 个文件并根据需要更新数据库 将偏移量增加 10 冲洗,重复。

API 流量很小,服务器上的负载低于 1%,但是,如果我们在任何一台机器上打开两个以上的选项卡到服务器,脚本开始按比例减慢,就像 Web 服务器(Apache ) 正在排队命令而不是并行运行它们。

我们发现,如果我们在多台机器上打开两个选项卡,它会按预期扩大。为了使我们的上行链路饱和或在服务器上施加任何明显的负载,我们需要用笔记本电脑填满房间。虽然很可笑,但这也是非常不切实际的,而且通常会让人头疼。这里一定有更好的方法。

我尝试将最大备用进程数、每个孩子的请求数等增加 10 倍,但速度没有明显提高。我们缺少什么?我如何巧妙地告诉 Apache 暂时让任何人连接任意次数并发疯?

PHP 5.3.8 PHP Sapi: apache2handler PHP 加载扩展: 核心日期 ereg libxml openssl pcre sqlite3 zlib bcmath calendar ctype curl dom fileinfo filter ftp gd hash iconv SPL json mbstring mysql session standard posix Reflection Phar SimpleXML sockets SQLite imap tokenizer xml xmlreader xmlwriter zip apache2handler

MYSQL:MySQL 5.0.92-社区

感谢阅读!

【问题讨论】:

    标签: php apache api amazon-s3 phpfox


    【解决方案1】:

    大多数网络浏览器对它们与给定网络服务器建立的并发连接数都有限制。我不确定所有浏览器,但我知道可以配置的一种浏览器是 Mozilla Firefox,使用 Fasterfox 扩展:

    https://addons.mozilla.org/en-US/firefox/addon/fasterfox-9148/

    话虽如此——难道你真的没有办法编写脚本来在服务器上进行迁移,而不是通过 Web 界面运行它吗??

    【讨论】:

    • 即使是一个包含数千行 wgets 的简单的预生成 shell 脚本也比使用真正的浏览器效果更好。然后根据需要启动尽可能多的终端会话。
    • 同意。有许多 FAR 更好的方法可以做到这一点,但由于超出本论坛范围的原因,我们坚持在 Web 浏览器中进行。甚至尝试在 Web 服务器上使用 elinks(它从 localhost 请求,几乎消除了过程中的网络延迟)但仍然没有乐趣
    • @duskwuff 不,我希望有。我们坚持使用上面定义的参数。也就是说,我安装了 firefox 插件,它没有帮助,但为了测试理论,我打开了 firefox、IE、chrome 和 safari 的副本,该死的东西可以正常缩放。我得到的不是每秒 1 个请求,而是 4 个。如果我在 Firefox 中打开 4 个选项卡,即使使用插件(配置了多种方式),它仍保持在 1req/秒,页面加载只需要更长的时间。知道这里发生了什么吗?操作系统(Win7)是否限制了每个程序的连接或其他东西?我已将 FF 中的最大连接数设置为 96。
    猜你喜欢
    • 2012-01-18
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2020-07-07
    相关资源
    最近更新 更多