mod_deflate

OJDE

Active Member
Anyone using mod_deflate with IHS 6.0 or Apache 2.0, 8.95, 8.11 and IE 6? Problems, issues, is it worth it for WAN browser connections? Thanks.
 
Implementing mod_deflate is definitely worth it. My experience has been very positive. For instance the Task Menu as one of my sites is 300K uncompressed and 30K compressed. Compression is the only way to get Web bandwidth even near that of Citrix.

The only problem I have encountered is around PDF files. This problem is not actually E1 specific. If affects certain releases of Adobe Reader with Internet Explorer. The problem in some configurations is that the Adobe plugin is fed PDF data by IE before the stream is fully decompressed. My intial solution was to exclude pdf files from compression. E1 PDFs can really benefit from compression so this was not a good solution. A better solution is to leave compression turned on and turn off the Adobe plugin. This is a setting within Acrobat reader which causes the full Adobe reader to be launched by IE instead of the plugin. That being said with the latest Adobe Reader and IE versions I have not had this problem.
 
Great. Thank you. I have another question...
If I implement and I use the same JAS/HTTP server instance for my LAN (100 or 1000 Mbps) clients, would they notice a significant difference, slowing them down with the time to compress/decompress... There must be a bandwidth break point with JDE, where the download time saved in a typical page, outweighs the time to decompress in the browser. Any thoughts? Thanks again.
 
There is certainly a CPU impact on both the server and the client when using compression. I can't give figures as I haven't done any formal tests.

When I have deployed compression on high speed LAN connections I have gotten comments from users that range from "I don't notice any difference" to "It feels quicker". I haven't had anybody say it is amazingly different on a LAN. Over a WAN (a few MBits) everybody comments at how much better it is. On a LAN I tend to give more attention to the workstations themselves, lots of memory and fast CPU and on the Enterprise server -- memory, CPU and kernel tuning.

It is very easy to switch between running without compression and running with compression. I suggest you run for a day or so in each configuration and measure things like total bytes in and out of the web server and CPU utilization. If you monitor a few clients as well you should be able to get a good picuture of what compression is doing for you or to you.

Take a look at this interesting article on the W3C site. It talks about compression over a LAN and possible drawbacks:
http://www.w3.org/Protocols/HTTP/Performance/Compression/LAN.html

Hope this helps
 
Thank you, Justin,

This was very helpful. I am sold. I have no shortage of CPU on the JAS/HTTP servers and I can simply exclude the PDFs for starters, which in 8.95 use, in addition to the plug-in, page-by-page and other download optimizations... I am mostly concerned with the 1MB 2MB Javascripts on every other page in the newer tools releases.
Any recommendations on BufferSize and CompressionLevel per user or tools release? Thanks.
 
Here are the settings I typically use. Some of them come from various Oracle(JDE) web specialists I have worked with. I have played with Compression Level but not Buffer size. You have got me curious and I may have to do a formal study on these settings.

-----------------------------------------------------------
SetOutputFilter DEFLATE

AddOutputFilterByType DEFLATE text/html text/plain text/xml
AddOutputFilterByType DEFLATE application/ms* application/postscript

# I turn this on when I want to have some concrete evidence of how
# much compression I am getting. It is also helpful when trying
# to decide on the DeflateCompressionLevel below
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
#CustomLog logs/deflate.log deflate

# I set this between 7 and 9. I haven't done enough CPU
# versus compression benefit analysis to really come up with
# the best value.

DeflateCompressionLevel 7

# These turn off compression explicitly for content that is typically # already compressed and for PDF's.
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:pdf|ube)$ no-gzip dont-vary

# This section is not related to caching but can also help reduce
# bandwidth. If causes graphics, stylesheets and javascript files
# to be cached by the browser. You have to keep this caching in mind
# if you are hacking at the web stylesheet or modifying E1 graphics.
# It could also be an issue after JAS service pack installs as older
# versions of javascript would be cached. You may consider using
# "modification plus 1 day" if this is a concern.

ExpiresActive on
ExpiresByType image/gif "access plus 7 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/x-javascript "access plus 7 days"
 
Thanks again, man!
You are really helpful.
I will implement next week and report my own measurements and findings as well... Looks like, if not specified, the precompliled value of BufferSize is 8096 and WindowSize is 15. I have other peculiar combinations of delivering this to the client (via reverse proxy and SSL) which I will explore and report as well. Thanks.
 
Hi Justin,
Do you have a JDE whitepaper/documentation that detailed the steps to implement mod_deflate? I'm on 8.11SP1 running WAS5 on my Jas Servers. Like to implement compression on these machines. Thanks.

CW
8.11SP1, AS400 V5R3, WAS5
 
Back
Top