INN not keeping up with incoming news
Fabien Tassin
fta at sofaraway.org
Sun Feb 25 19:19:50 UTC 2001
According to Russ Allbery:
>
> Alex Kiernan <alexk at demon.net> writes:
>
> > We've just taken to locking the history.{hash,index} in core; its worked
> > wonders - we've gone from spending hours per day in HIS* to under 10
> > minutes (although I've no doubt that some of the time is hidden
> > elsewhere).
>
> Here's something to try if you have a test box for it: only mlock
> history.index and see if you still get the same win. I wouldn't be
> surprised if you did.
I've tried to mlock() only history.index.
Before :
hiswrite 41992(5063)
hiswrite 40724(5485)
hiswrite 44661(5521)
hiswrite 40876(4972)
hiswrite 40325(4853)
hiswrite 44043(5292)
hiswrite 42554(5076)
After :
hiswrite 339(5054)
hiswrite 374(5513)
hiswrite 440(5917)
hiswrite 469(6115)
hiswrite 455(6024)
No other timer impacted. It is under Linux 2.4.1.
I'm still waiting to see if it make things faster...
> history.hash is already mmap'd, so I think you're already seeing a lot of
> the benefits there. history.index on the other hand isn't mapped at all
> and INN normally writes to it without any buffering at all. This is a big
> drawback of the new dbz code that needs to be fixed, after the new history
> API, and I think it's the main reason why people are seeing history writes
> be so slow.
>
> When you lock it into memory, though, with Solaris and its unified buffer
> cache, I bet all of those disk writes are staying in memory. I wonder if
> you wouldn't get similar performance by editing innd/his.c and specifying
> INCORE_MMAP for opt.pag_incore.
I'm also wondering it.
> > If anyone's interested, here's the code we're using (it doubtless has
> > some Solaris assumptions, I haven't tried building it anywhere else):
>
> Shall I drop this into contrib?
yes, please.
--
Fabien Tassin -+- fta at sofaraway.org
More information about the inn-workers
mailing list