php+延迟执行第二次访问,对同一PHP脚本的并行请求会导致第二次长延迟

背景

这让我疯狂了几个星期.我使用MrClay的PHP Minify脚本来缩小和连接我的JS和CSS.它工作得很好,我的所有文件都合并到common.css和common.js,它们是虚拟文件,翻译成链接到脚本,如下所示:

RewriteRule ^common.js$/tynamic/min/?g=js [L,QSA]

RewriteRule ^common.css$/tynamic/min/?g=css [L,QSA]

还附加了一个查询字符串来表示这些文件的版本,并且它们有3年的缓存时间,因此访问我网站的人可能永远不会在以后访问该网站时下载任何CSS或JS(如果他们显然不要改变.到目前为止一切正常.

问题

经常(可悲地不总是),当我的浏览器要求这两个文件(这是同时完成)时,其中一个文件需要一秒钟才能返回.它始终是其请求稍后到达服务器的那个,因此它通常是稍后在HTML中的那个,但它不是规则.

看这些截图:

我可以将服务器将其他文件放入队列并在第一个文件之后进行处理,但这不需要一秒钟.

更多的事情:在这种情况下没有执行像concatetion或gzipping这样的操作..脚本只执行现有pre-gzip文件的fpassthru().它并不是一直发生的..但它有点奇怪,如果我做了大量的连续页面加载,比如30或更多,当两个文件在一个微不足道的时间处理时,它会回到“正常” .然后,当我检查一段时间后,它又回到了第二次挂起.时间总是不到一秒钟.

我已经尝试过了什么

>输入if($_ GET [“g”] ==“js”)退出;就在剧本的开头.

多数民众赞成,没有任何帮助.该文件仍然延迟,没有输出任何内容.刚退出(对于这两个文件)然而工作…… 🙂

>定时脚本

两次运行都报告了它们运行的​​最小时间(单位或几十毫秒),因此没有任何函数可以延迟它.

>不同的服务器/托管

没有帮助,3个不同的服务器和托管提供商.它不是托管相关的.

>制作脚本的完整副本

所以我制作了完整脚本目录的副本,以确保两个文件都由不同的文件组成 – 没有帮助.

>禁用文件锁定,并对脚本配置或脚本本身进行其他调整.

到目前为止,我没有想出任何东西:(

>不同的脚本 – 做其他事情.

这很有趣,修改文件以做其他事情,例如做一个scandir并选择一个文件也无济于事.另一项分析表明,PHP脚本每秒都被分配给空闲的CPU线程.所以如果有例如需要同时运行5个线程和6个脚本,前5个完成10个msecs,但是第6个必须等待整整一秒甚至开始被执行…为什么会发生这种情况?

非常感谢您提供帮助我的任何努力

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值