bin@primate.wisc.edu (Brain in Neutral) (07/03/89)
From article <1884@papaya.bbn.com>, by rsalz@bbn.com (Rich Salz): > The next topic was running NNTPXMIT. Most people run it every 30 to 60 > minutes, a few run it every one to 10 minutes, and Scott Bradner at > Harvard runs it continuously. **Care to post your script that does this, > Scott?** After pleading from Erik Fair, most people agreed to run it more > often. **Please run NNTPXMIT at least every 10 minutes.** What is the reason for this? To reduce average propagation time? To increase size of already-large log files? Paul DuBois dubois@primate.wisc.edu
wisner@mica.Berkeley.EDU (Bill Wisner) (07/04/89)
bin@primate.wisc.edu (Brain in Neutral) writes: >What is the reason for this? To reduce average propagation time? To >increase size of already-large log files? To reduce average propagation time. Unless you're running on floppy disks or never prune your log files, their size should not be an issue. When Ed Vielmetti was at the U of Michigan's computing center, he had mailrus and sharkey running nntpxmit from cron every minute. This may or may not still be the case; Ed's now with UM's math department. Bill Wisner wisner@mica.berkeley.edu ucbvax!mica!wisner I'm not the NRA either.
fair@Apple.COM (Erik E. Fair) (07/04/89)
Running nntpsend often is entirely an exercise in making news flow more quickly. If everyone is running with what we recommended in the original NNTP release (every 10 minutes), then it takes an hour to go six hops. I'd like to see it take six minutes (i.e. run nntpsend every minute). If you read Rick Adams' UUNET statistics posted in news.lists every two weeks, I'm looking to push the initial wave of traffic to the first hour, and spread it out more evenly. This isn't a strictly statistical goal either; netnews is fast becoming the computer conferecing system of the Internet, but it is still not as fast as Internet mail. Fortunately, with your help, this can be fixed. Currently, ucbvax and apple are both running 1 minute nntpsend (I just took that first field in the /usr/lib/crontab file and turned it into a star "*"). I know that other backbone sites are running faster than 10 minutes too. It hasn't put much of a load on the systems because we're moving just as many bytes as before - the load is just spread out more evenly, rather than spiking every 10 minutes... Erik E. Fair apple!fair fair@apple.com P.S. let's move the discussion out of comp.org.usenix to news.software.nntp.
ed@mailrus.cc.umich.edu (Ed Anselmo) (07/04/89)
>When Ed Vielmetti was at the U of Michigan's computing center, he had mailrus >and sharkey running nntpxmit from cron every minute. This may or may not >still be the case; Ed's now with UM's math department. This is no longer the case: Looks like mailrus is running nntpxmit every 30 min.; sharkey once an hour. -- Ed Anselmo (ed@cardiology.ummc.umich.edu, mailrus!clip!ed)
emv@math.lsa.umich.edu (Edward Vielmetti) (07/04/89)
In article <1128@mailrus.cc.umich.edu> ed@cardiology.ummc.umich.edu (Ed Anselmo) writes: >>When Ed Vielmetti was at the U of Michigan's computing center, he had mailrus >>and sharkey running nntpxmit from cron every minute. This may or may not >>still be the case; Ed's now with UM's math department. > >This is no longer the case: > >Looks like mailrus is running nntpxmit every 30 min.; sharkey once an hour. > > -- Ed Anselmo (ed@cardiology.ummc.umich.edu, mailrus!clip!ed) Running every minute out of cron, especially if you have a lot of incoming feeds, means that there's going to be a lot of activity if you go down for any amount of time and come back up again. Imagine going down for 4 hours, then getting 4 hour's feed from ten sites simultaneously in the first few minutes of going back up. Tends to push up the load average a bit, and if there's anything wrong with the workings of other important software on the system (i.e. mail) that can make it difficult to address those problems. I had thought to put something in rc.local to delay accepting news from most sites for say 30 minutes after boot; you'd have two nntp_access files, and boot with a real restrictive one which only allows a few favorite close-by sites to feed you, which you'd replace with the real one after things quieted down sufficiently. --Ed
brian@ucsd.EDU (Brian Kantor) (07/04/89)
I've shipped a series of patches off to Stan Barber that permit you to limit the number of transfer-mode NNTPd processes running on a system based on load average. In particular, nntpd checks two load average figures and will disallow startup or discontinue transfers if the load average climbs above the appropriate limits. The patches also include locking to prevent incoming transfers whilst 'expire' is running; this is done because there can be no duplicate article detection when incoming news is spooled into .rnews and with multiple feeds that's a real waste of resources. Stan tells me he'll get those changes out when he has time. Please be patient. Below I've included our nntpsend which runs continously; it has load limiting stuff in it too. Adjust the load limits and sleeps to suit your environment. (UCSD is a poor tired vax/750 and thus not much faster than an IBM-PC; our primary task is mail so news gets shut off when the load average impacts mail flow.) This is started hourly from crontab in case it exits; shell locking prevents more than one from running at a time. Enjoy. - Brian --- # # What we have here is a csh script for sending netnews to NNTP sites. # set stoplim=10 set slowlim=6 set batchdir=/usr/spool/batch libdir=/usr/lib/news set path=( $libdir /usr/ucb /usr/bin /bin $path ) # # Go to where the action is # cd $batchdir umask 022 set pname=$0 set pname=$pname:t # # Make sure only one of us is running # if { shlock -p $$ -f NNTPSEND } then echo ${pname}: "[$$]" started `date` else echo ${pname}: "[$$]" already running "[`cat NNTPSEND`]" exit 0 endif while ( 1 ) set loadavg=( `uptime` ) # check the 15-minute load average if ( $loadavg[$#loadavg]:r > $stoplim ) then echo "load avg too high; quitting" echo $loadavg rm NNTPSEND exit 1 endif set sentsome=0 echo ${pname}: "[$$]" begin cycle `date` foreach host ( \ rutgers.edu \ ucbvax.berkeley.edu \ tut.cis.ohio-state.edu \ ) # check the 5-minute load average set loadavg=( `uptime` ) @ n = $#loadavg - 2 while ( "$loadavg[$n]:r" > $slowlim ) sleep 600 # check the 5-minute load average set loadavg=( `uptime` ) @ n = $#loadavg - 2 end set lock=NNTP_LOCK.${host} set tmp=${host}.tmp set send=${host}.nntp if { shlock -p $$ -f ${lock} } then if ( -e ${tmp} ) then cat ${tmp} >> ${send} rm ${tmp} endif if ( -e ${host} ) then if ( -e ${send} ) then mv ${host} ${tmp} else mv ${host} ${send} endif endif if ( -e ${send} ) then ( echo ${pname}: "[$$]" begin ${host}:${send};\ time nntpxmit ${host}:${send};\ rm -f ${lock};\ echo ${pname}: "[$$]" end ${host}) & set sentsome=1 else rm -f ${lock} endif else echo ${pname}: "[$$]" ${host} lock by "[`cat ${lock}`]" endif # let the load level a bit sleep 30 end echo ${pname}: "[$$]" end cycle `date` # if there wasn't any news to send this time round, # hibernate for a while if (${sentsome} == 0) then sleep 300 endif end
bin@primate.wisc.edu (Brain in Neutral) (07/05/89)
From article <714@stag.math.lsa.umich.edu>, by emv@math.lsa.umich.edu (Edward Vielmetti): | Running every minute out of cron, especially if you have a lot of incoming | feeds, means that there's going to be a lot of activity if you go down for | any amount of time and come back up again. Imagine going down for 4 hours, | then getting 4 hour's feed from ten sites simultaneously in the first few | minutes of going back up. Tends to push up the load average a bit, and if | there's anything wrong with the workings of other important software on | the system (i.e. mail) that can make it difficult to address those problems. | | I had thought to put something in rc.local to delay accepting news from most | sites for say 30 minutes after boot; you'd have two nntp_access files, and | boot with a real restrictive one which only allows a few favorite close-by | sites to feed you, which you'd replace with the real one after things quieted | down sufficiently. Before booting: mv /etc/nntpd /etc/nntpd~ After you've been up for a bit: mv /etc/nntpd~ /etc/nntpd Simple, effective. It doesn't prevent the load average hike from happening, but does at least delay it until you want it. Paul DuBois dubois@primate.wisc.edu
leres@ace.ee.lbl.gov (Craig Leres) (07/07/89)
Erik E. Fair writes: > quickly. If everyone is running with what we recommended in the > original NNTP release (every 10 minutes), then it takes an hour to go > six hops. I'd like to see it take six minutes (i.e. run nntpsend every If I run nntpsend every 10 minutes, I would expect it to take 5 minutes (on average) for me to propagate a new article. I would also expect it to take 30 minutes (on average) to travel six hops. I suppose my posting has the potential for starting a minor probability and statistics war (like the one on engine counting in comp.risks) so perhaps I should state my assumptions in an attempt to cut out the simpletons. My first assumption is that not everyone clocks are synchronized. A small sampling of internet hosts at several sites shows a spread of about plus or minus 3 minutes. My other assumption is that not everyone who runs nntpsend with a 10 minute interval starts on the hour. Even if you (stupidly) assume that every single nntp peer's clock is synchronized, I don't see how you can assume that they all start their cycles on the hour (my own system starts at 3 minutes past the hour or 7 minutes before the hour, depending on how you look at it). Note that even if every host starts their cycle on the hour, the un-synchronized clock syndrome will make it take almost 10 minutes for an article to travel in one direction and almost 0 minutes for it to travel in the other direction. This averages out to 5 minutes. Craig