On Tue, 15 Oct 1996 15:41:19 CDT, george tsai said: > I have a list of more than 18,000 subscribers. When I distribute a > announce once a week, it takes up to 8 hours for delivery. During > the 8 hours period of time, no jobs can be process at all. Any way > to speed this thing up ? Here's what we did to make it work reasonably fast for a list of 4,000 users that gets hit 10 or 20 times a day: 1) In your sendmail.mc, add a line FEATURE(nocanonify) and rebuild your sendmail.cf. If you are unfortunate enough to not be using m4 to build your .cf files, do this: a) edit sendmail.cf b) find a ruleset line that contains a ${ $} on the right hand side c) Comment said lines out with a '#' d) Save and enjoy. This change bought us an approximate 6x-8x speedup, and took a lot of load off our nameserver 2) Run a local caching-only nameserver, if you have the memory for it. This saves a round trip on the wire for each host lookup. 3) Raise the value of MAXBSMTP - this is a minor win, but may be worth it. Our biggest win here was that we have a lot of "local" lists, and when we raised MAXBSMTP and hacked Sendmail to deal, the local mail hub got hit with a lot fewer transactions (and our 'delivermail' was able to do 8 sets of 250 recipients a lot faster than 20 sets of 100 recipeints. Fork fork thrash thrash ;) The Sendmail hacking was basically to raise the values of -DTOBUFSIZE=4096 in the Makefile, and then raise the value of MAXLINE in conf.h 4) If your Unixoid supports the concept of LOCALE, you may wish to look at /usr/include/ctype.h - at least under AIX, there are -Dflags that you can set to essentially force isupper() and friends to be macros rather than function calls. Note that this may be hazardous - I found 9 or 10 places in the Sendmail source where the code assumed it was safe to do things like toupper(*c++) - but the macro evaluated its argument twice. I have a patch for this if you need it... -- Valdis Kletnieks Computer Systems Engineer Virginia Tech