
tomas.styblo at jet2web
Mar 7, 2002, 7:20 AM
Post #1 of 1
(390 views)
Permalink
|
Hello. I would like to ask some questions about buffering in mod_backhand proxy. We have some application web servers with PHP and mod_perl, which run _very_ huge Apache processes (commonly 20 MB per process). We need to minimize the time that these huge Apache processes spend delivering the dynamic content to dialup users on slow connections. Therefore we need some sort of a frontend, which will buffer the output of these app serveres and will take care of the delivery process. Mod_backhand proxies seem to be a very nice solution. But I got following questions: 1) The Apache SendBufferSize directive affects the size of the kernel buffer for each socket. I suppose that if I set it to, say 64 KB, then the proxy will be able to buffer max. 64 KB of data. If a dynamic page generated by the app server would be larger than 64 KB, then the proxy must maintain open connections to both the client and the app server. In this case, the app servers will still spend some time actually delivering the content. Is my understanding correct ? Or is there also some other kind of buffer in mod_backhand on application level, besides the kernel-maintained socket buffers ? 2) I suppose that to make the SendBufferSize directive to really work, on FreeBSD the following susctls must be issued: sysctl kern.ipc.maxsockbuf=8388608 /* or higher */ sysctl net.inet.tcp.sendspace=65536 sysctl net.inet.tcp.recvspace=65536 That would make nice addition to your FAQ. 3) The kernel socket buffers cannot be larger than 64 KB unless both the client and the server support TCP Large Windows (rfc-1323). Wouldn't be therefore a good idea, if mod_backhand had some kind of internal buffer to actually buffer the output of the app servers ? Thank you very much for your excellent work and for your time. Regards. -- Tomas Styblo tomas.styblo [at] jet2web
|