That would be of my real interest to know as many details of Bill's
experience with mod_deflate as he can provide.

Since I posted my first message, I've been snooping around the 'net to find more info on mod_gzip and mod_deflate. Here's what I came up with:


The general recommendation seems to be migration from mod_gzip to mod_deflate when you switch to Apache 2.0. mod_gzip seems to have lost most of its support going forward while mod_deflate is part of the Apache source code and has active development.

There is a Apache 2.0 compatible version of mod_gzip, here:
http://www.gknw.de/development/apache/httpd-2.0/unix/modules/

When I tried it, it didn't work for me. It caused my site to spit out blank pages and garbage. I had used my old Apache 1.3 mod_gzip config with it. I read that there's some odd timing issues where the Apache 2.0 version of mod_gzip branched a long time ago and thus doesn't have some of the "modern" mod_gzip 1.3.x features. I didn't get config errors, though, just blanks and garbage. So, I decided to back away slowly for mod_gzip on Apache 2.0. There is more discussion of it here:
http://freshmeat.net/projects/mod_gzip/?topic_id=90


There a good mod_gzip info page here, though little is said about a 2.0 version:
http://www.schroepl.net/projekte/mod_gzip/index.htm


The mod_gzip mailing list has some good info. Here's a 26 Jun 2003 post by someone who seems to know well what's going on (I think the author of the above page):
Subject: [Mod_gzip] gzip vs deflate on Apache
http://lists.over.net/pipermail/mod_gzip/2003-June/007130.html



So, I decided to try harder to move ahead with mod_deflate. I'm using a built from scratch, Apache/2.0.46 mod_perl_1.99_09. Work is being done on mod_deflate, some recent directives has been added (I hear). One of which is DeflateCompressionLevel. Along with this addition in 2.0.44 came a better default for this compression level. It's now 6, the same thing that gzip and zlib uses by default. Apparently, it had been 1 before that, which is fast but doesn't compress very well. There's some discussion of this here:
http://www.webcompression.org/deflate-compress.html



My own personal experience with mod_deflate (in Apache/2.0.46) is that it tends to spike my server's load. My server (gametz.com) is dual 800Mhz, 1.5GB ram, Linux, doing about 70K pages/day. Last night, I happened to be watching it while the load jumped up a few points during my site's prime time, so I pulled mod_deflate out of the config file and that fixed it.


So, today, I'm trying a lower DeflateCompressionLevel. I'm using 4 now (instead of the default 6). This seems better, though the load is still a little higher than it should be and I'm not quote at prime time yet. Still, I am getting decent compression. I'm going to keep an eye on it, I suspect I'll be at 3 later this evening.

I never had any trouble with load when I used mod_gzip and Apache 1.3.

The other odd problem I got was that if anywhere in my perl code I printed nothing (e.g. print "" or $foo="";print $foo), I'd get this error:

error: 20014:Error string not specified yet at /my/perl/code.pl line 123

This error was both blurted to the error_log and to the web page (screwing up the page and truncating further output).

I changed my code to print " " instead of "" (HTML ignores extra white-space, so no biggie), and the errors all went away. So, I see this as an annoyance more than a serious bug.

I really should try to tell the author of mod_deflate about these problems.

Here's the config I'm using for mod_deflate:

#####
## Deflate
#####
LoadModule deflate_module modules/mod_deflate.so
AddOutputFilterByType DEFLATE text/*
SetOutputFilter DEFLATE

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
DeflateBufferSize 8096
# DeflateCompressionLevel 6
DeflateCompressionLevel 4
DeflateMemLevel 9
DeflateWindowSize 15
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%) "%{User-agent}i"' defl\
ate
CustomLog /var/log/httpd/deflate_log deflate


All of which I cribbed from the Apache 2.0 manual:
http://httpd.apache.org/docs-2.0/mod/mod_deflate.html


I sort of got forced into upgrading to Apache 2.0/mp2/etc. by RedHat. They announced they would pull support for old releases (all that used Apache 1.3) by the end of the year. Apparently, this may be an intentional (evil?) business move by them to motivate more customers to move to their Enterprise OS (which is very expensive, but has more stable software like good old Apache 1.3 & mp1).


I did try to go back at one point, builing Apache 1.3 from source, but it had some other problem (maybe, because I used Perl 5.8.0?). But, then I waffled and decided there's also a lot of value in staying current. So, I'm back to 2.0 land, and I'm surviving so far.

-=bill










Reply via email to