PHP / Apache中的输出缓冲块如何工作?
作者:互联网
假设我正在回应从PHP到浏览器的随机数据.随机数据的总量约为XGb,回声以YKb块的形式完成.没有使用ob_start().在PHP和Apache缓冲区已满后,echo调用是否会阻塞(客户端无法以与生成相同的速度消耗数据)?如果是这样,PHP和Apache缓存的大小是多少?我是否理解正确,过程如下:
> PHP echo将字节发送到php输出缓冲区,直到它满了.之后,echo开始阻塞,直到某个缓冲区被发送到Apache并因此被清除
> PHP从其输出缓冲区发送数据,直到Apache缓冲区已满.之后,Apache停止从PHP接收数据并等待,直到部分缓冲区被发送到客户端并清除.
附:如果你对我将要实现的任务的愚蠢感到惊讶,我可以说,我正在为一个专用服务器编写小流量平衡脚本,并应用了某些流量规则(IN / OUT流量比应保持在一定值) .
解决方法:
这可能与SendBufferSize
Directive有关.
也许这会有所帮助
http://fplanque.com/dev/linux/why-echo-is-slow-in-php-how-to-make-it-really-fast
标签:apache,php,output-buffering 来源: https://codeday.me/bug/20190627/1300998.html