[news.software.anu-news] Speed Problem

TLIMONCE@DRUNIVAC.BITNET (Tom Limoncelli) (09/14/89)

We are running VMS 5.1 and NEWS 5.8A.  I have noticed
that in the last week, the time it takes to get into
news has risen from about 1.2 minutes, to about 3.5 minutes.
     
Has anyone else suffered a sudden startup slowdown?
     
-Tom

gih900@UUNET.UU.NET (Geoff Huston) (09/15/89)

Tom Limoncelli writes:
     
>We are running VMS 5.1 and NEWS 5.8A.  I have noticed
>that in the last week, the time it takes to get into
>news has risen from about 1.2 minutes, to about 3.5 minutes.
>
>Has anyone else suffered a sudden startup slowdown?
     
This is probably the processing overhead of your newsrc file - which is a
function of the number of local newsgroups.
     
Also if you are running restricted newsgroups the processing overhead on
startup also increases.
     
I must admit that 3.5 MINUTES is not overly impressive.....but the usual
tradeoffs between functionality and execution times always apply.
     
Geoff

hd@cft.philips.nl (Henk D. Davids @ PMSN) (09/15/89)

In article <ANU-NEWS%89091314303758@NDSUVM1> Tom Limoncelli complains about
the time that NEWS takes to start. Geoff Huston wrote an answer to that,
but I think that there is more to it.
News is slow here too (on a lightly loaded VAX-8650), and I think there may
be more than one cause for that.

1. News startup takes more elapsed time than can be explained by the
   cpu-time that is consumed, or the amount of disk I/O. My guess is that I
   sometimes have to wait for locks set by other users in the news.groups
   and news.items files.

   Possible remedy would be to have News open these files for shared
   readonly access - concurrent use will be faster because RMS does not
   have to lock records. The only cases where write access is required is
   for some news manager functions, and for posting messages by other users.
   A news session by the news manager could easily be handled as a special
   case. For ordinary users a solution would require more work: posting an
   article would then necessitate a (temporary) reopen of the news.items
   file, but the ratio between reading and posting articles is at least
   something like 1000:1, true?

2. Processing the newsrc. file takes a fair amount of time, both on startup
   and shutdown. Presently these files are written in stream_LF format,
   which is notoriously slow under VAX C.
   
   Improvement could be obtained here by using "rfm=var" in the fopen, or
   by specifying "ctx=rec". In a recent article in comp.os.vms Jerry
   Leichter wrote an informative story on this, recommended reading for
   everyone using C on VMS.
   
   Shutdown delay is also caused by the (nice) way that News creates a new
   version of newsrc.: first write the new one, then delete the previous
   and finally rename the new to newsrc.;1. Nice but time consuming;
   personally I don't care if I see more than 1 version of newsrc., nor
   whether or not the version number is 1, but that's a matter of taste.

3. The selection of a newsgroup that you did not select before in the same
   session is costly in terms of page faults. News allocates a new area for
   the complete directory of every newsgroup you select. This has the
   advantage that selecting a newsgroup for the second time is
   instantaneous, but the drawback is of course that the more frequent case
   of selecting a new newsgroup is slow. Besides, selecting many large
   newsgroups in the same run can easily make your process exceed your
   process quota (virtual page count or pagefile quota).

   Possible schemes to help here all have an effect on the functionality.
   One way is to introduce a "select/unread_only" command: select a
   newsgroup, but only include the as yet unread items in the directory.
   That way we use much less memory (and I/O on news.items), but if you
   then decide that you need to look at an item that you already read in a
   previous run you would have to reselect this newsgroup to get the full
   directory.
   Another change could be to re-use the same memory area for all selects.
   That would not save on news.items I/O, but it does help to keep the page
   faults down.

   A smaller impact on speed would have the introduction (and use :-) of a
   new qualifier "/registered_only" for the news command itself: only build
   a newsgroup directory for the registered groups. 

5. When selecting an article for reading, there is sometimes a delay of
   several seconds, even up to 30 or so, before the article is displayed.
   So far I have not been able to figure out what causes this. May be I get
   bitten by directory reads that have to wait for free space? Or can this
   too be due to locks on something?

I have to add that we feed a fairly large portion of Usenet news into ANU
News. To give an impression: our news.items file is currently 24000 blocks,
my own newsrc. file is 20 blocks. Oh and yes, we have a few restricted
newsgroups.
Please do not think that I don't like News as it is now. It is certainly in
my top-5 of VMS programs.

- Henk