PHP has its own buffering mechanism which can take care of this. Try output_buffering = 4096 in your php.ini.
Zeev At 08:33 PM 6/8/2002, Brian Pane wrote: >Looking at some more syscall call traces, I'm seeing that >the flush buckets used by php_apache_sapi_ub_write() are >causing very small packets even for script-generated output, >not just for blocks of static text. > >For example, I just compared the write patterns for 2.0.37 >and 1.3.24, both with the default configuration for PHP-4.2.1, >while delivering a file consisting solely of: > <?phpinfo() ?> > >1.3: > >writev(3, [{"HTTP/1.1 200 OK\r\nDate: Sat, 08 J"..., 4089}, {"28\r\n", 4}, >{"<tr valign=\"baseline\" bgcolor=\"#"..., 40}, {"\r\n", 2}], 4) = 4135 >write(3, "ffb\r\n<td bgcolor=\"#ccccff\"><b>as"..., 4098) = 4098 >writev(3, [{"fdd\r\ntd bgcolor=\"#ccccff\"><b>hig"..., 4068}, {"22\r\n", >4}, {"</b><br /></td><td align=\"center"..., 34}, {"\r\n", 2}], 4) = 4108 >writev(3, [{"ff2\r\n/usr/sbin/sendmail -t -i </"..., 4089}, {"22\r\n", 4}, >{"</b><br /></td><td align=\"center"..., 34}, {"\r\n", 2}], 4) = 4129 >(followed by a few more 4KB writes) > > >2.0: > >writev(8, [{"HTTP/1.1 200 OK\r\nDate: Sat, 08 J"..., 220}, {"47\r\n", 4}, >{"<!DOCTYPE HTML PUBLIC \"-//W3C//D"..., 71}, {"\r\n", 2}], 4) = 297 >writev(8, [{"6\r\n", 3}, {"<head>", 6}, {"\r\n", 2}], 3) = 11 >writev(8, [{"1c\r\n", 4}, {" <!-- <DEFANGED_STYLE >type=\"text/css\"><!--\n", 28}, {"\r\n", 2}], 3) = 34 >writev(8, [{"1d\r\n", 4}, {"a { text-decoration: none; }\n", 29}, {"\r\n", >2}], 3) = 35 >writev(8, [{"28\r\n", 4}, {"a:hover { text-decoration: under"..., 40}, >{"\r\n", 2}], 3) = 46 >writev(8, [{"55\r\n", 4}, {"h1 { font-family: arial, helveti"..., 85}, >{"\r\n", 2}], 3) = 91 >writev(8, [{"55\r\n", 4}, {"h2 { font-family: arial, helveti"..., 85}, >{"\r\n", 2}], 3) = 91 >writev(8, [{"49\r\n", 4}, {"body, td { font-family: arial, h"..., 73}, >{"\r\n", 2}], 3) = 79 >writev(8, [{"56\r\n", 4}, {"th { font-family: arial, helveti"..., 86}, >{"\r\n", 2}], 3) = 92 >writev(8, [{"e\r\n", 3}, {"//--> --> </DEFANGED_STYLE>\n", 14}, {"\r\n", >2}], 3) = 19 >(followed by a thousand more tiny writes) > >It looks like "unbuffered" PHP output in 1.3 is benefitting from the >httpd's own buffering. And "unbuffered" output in 2.0, in contrast, >is really, really not buffered, because of the flush buckets inserted >by php_apache_sapi_ub_write. And the tiny packets that result in the >2.0 case are likely a major cause of reports of slowness under 2.0. > >--Brian > > > > >-- >PHP Development Mailing List <http://www.php.net/> >To unsubscribe, visit: http://www.php.net/unsub.php -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php