编程语言
首页 > 编程语言> > PHP / Apache中的输出缓冲块如何工作?

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