PHP输出缓冲(二)-- 缓冲配置
来源:互联网 发布:iec104规约java源码 编辑:程序博客网 时间:2024/04/30 22:44
PHP缓冲区配置
1.php.ini中的output_buffering配置
Off: 表示关闭PHP输出缓存
On: 打开无限大的输出缓存
4096: 打开大小为4096Byte的输出缓存
2.php.ini中的implicit_flush配置
On: 表示每次输出(如echo,print)后自动调用flush()函数后,直接输出
Off: 与On相反,每次输出后不会调用flush(),需要等到server buffering满了才会输出,但是我们可以用flush()函数代替它,不开启也没关系,反而更加灵活
nginx缓冲区是每个进程独立的,不是所有进程共享的。
fastcgi_buffer_size 16k;
指定读取FastCGI应答头(response header)需要多大的缓冲区,这里可以设定为fastcgi_buffers指令制定的缓冲区大小。也可以指定一个更小的值。
应答头一般很小(不超过1k)。
fastcgi_buffers 16 16k;
指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答。
如上所示,如果一个php脚本所产生的页面大小为256k,则会为其分配16个16k的缓冲区来缓存。
如果大于256k,大于256k的部分会缓存到fastcgi_temp指定的路径中,当然这对服务器负载来说是不明智的方案,因为内存中处理数据速度要快于硬盘。
通常这个值的设置应该选择一个你的站点中的php脚本所产生的页面大小的中间值(可以理解为公约数)。
比如你的站点大部分脚本所产生的页面大小为256k就可以把这个值设置为16 16k,或者4 64k 或者64 4k。
但很显然,后两种并不是好的设置方法,因为如果产生的页面只有32k,如果用4 64k它会分配1个64k的缓冲区去缓存,而如果使用64 4k它会分配8个4k的缓冲区去缓存,而如果使用16 16k则它会分配2个16k去缓存页面,这样看起来似乎更加合理。
fastcgi_busy_buffers_size 32k;
用来控制同时传输到客户端的buffer数量。一般设置为 fastcgi_buffer_size 的两倍
一旦fastcgi_buffers设置的 buffer被写入,直到buffer里面的数据被完整的传输完(传输到客户端),这些buffer将会一直处在busy状态,我们不能对这些 buffer进行任何别的操作。
所有处在busy状态的buffer size加起来不能超过fastcgi_busy_buffers_size。
fastcgi_max_temp_file_size 0;
关闭对所有请求道磁盘的缓冲。
当fastcgi_buffers的内容被写满之后
如果一个php脚本所产生的页面大小为256k,则会为其分配16个16k的缓冲区来缓存。
如果大于256k,大于256k的部分会缓存到fastcgi_temp指定的路径中,当然这对服务器负载来说是不明智的方案,因为内存中处理数据速度要快于硬盘。
fastcgi_temp_file_write_size
表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。
1.php.ini中的output_buffering配置
Off: 表示关闭PHP输出缓存
On: 打开无限大的输出缓存
4096: 打开大小为4096Byte的输出缓存
2.php.ini中的implicit_flush配置
On: 表示每次输出(如echo,print)后自动调用flush()函数后,直接输出
Off: 与On相反,每次输出后不会调用flush(),需要等到server buffering满了才会输出,但是我们可以用flush()函数代替它,不开启也没关系,反而更加灵活
nginx缓冲区是每个进程独立的,不是所有进程共享的。
fastcgi_buffer_size 16k;
指定读取FastCGI应答头(response header)需要多大的缓冲区,这里可以设定为fastcgi_buffers指令制定的缓冲区大小。也可以指定一个更小的值。
应答头一般很小(不超过1k)。
fastcgi_buffers 16 16k;
指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答。
如上所示,如果一个php脚本所产生的页面大小为256k,则会为其分配16个16k的缓冲区来缓存。
如果大于256k,大于256k的部分会缓存到fastcgi_temp指定的路径中,当然这对服务器负载来说是不明智的方案,因为内存中处理数据速度要快于硬盘。
通常这个值的设置应该选择一个你的站点中的php脚本所产生的页面大小的中间值(可以理解为公约数)。
比如你的站点大部分脚本所产生的页面大小为256k就可以把这个值设置为16 16k,或者4 64k 或者64 4k。
但很显然,后两种并不是好的设置方法,因为如果产生的页面只有32k,如果用4 64k它会分配1个64k的缓冲区去缓存,而如果使用64 4k它会分配8个4k的缓冲区去缓存,而如果使用16 16k则它会分配2个16k去缓存页面,这样看起来似乎更加合理。
fastcgi_busy_buffers_size 32k;
用来控制同时传输到客户端的buffer数量。一般设置为 fastcgi_buffer_size 的两倍
一旦fastcgi_buffers设置的 buffer被写入,直到buffer里面的数据被完整的传输完(传输到客户端),这些buffer将会一直处在busy状态,我们不能对这些 buffer进行任何别的操作。
所有处在busy状态的buffer size加起来不能超过fastcgi_busy_buffers_size。
fastcgi_max_temp_file_size 0;
关闭对所有请求道磁盘的缓冲。
当fastcgi_buffers的内容被写满之后
如果一个php脚本所产生的页面大小为256k,则会为其分配16个16k的缓冲区来缓存。
如果大于256k,大于256k的部分会缓存到fastcgi_temp指定的路径中,当然这对服务器负载来说是不明智的方案,因为内存中处理数据速度要快于硬盘。
fastcgi_temp_file_write_size
表示在写入缓存文件时使用多大的数据块,默认值是fastcgi_buffers的两倍。
0 0
- PHP输出缓冲(二)-- 缓冲配置
- PHP输出缓冲(三)-- 相关缓冲函数
- php输出缓冲问题!
- php缓冲输出flush
- 72 PHP 输出缓冲
- PHP刷新输出缓冲
- php输出缓冲机制
- PHP 缓冲输出
- PHP输出缓冲控制
- PHP输出缓冲(一)-- 缓冲区原理
- php学习笔记(十七)输出缓冲
- php 输出缓冲控制(Output Control )
- 剖析PHP中的输出缓冲
- 剖析PHP中的输出缓冲
- PHP flush刷新输出缓冲
- PHP中刷新输出缓冲
- PHP中刷新输出缓冲
- 剖析PHP中的输出缓冲
- Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效
- 类型强制转换与计算机的原码,补码,反码
- OCP-1Z0-051 第118题 GROUP BY,HAVING子句
- java在固定时间内取值
- windows server 2012 AD 域和站点部署系列(一)环境准备
- PHP输出缓冲(二)-- 缓冲配置
- 堆和栈的区别
- HDOJ 1003 Max Sum
- PHP输出缓冲(三)-- 相关缓冲函数
- 高斯消元法求解开关问题
- JNI 之二 :java & c/c++ 相互通信及调用
- 大整数
- 和大家分享一下我近期最痛恨的“三件”事情
- failed in state INITED; cause: java.lang.IllegalArgumentException: Does not contain a valid host:por