racluster crashes, and memory utilization

Michael Hornung hornung at cac.washington.edu
Mon Feb 26 16:53:12 EST 2007


That may well work ok for me, provided I can still process the end result 
aggregate file using 'ra' on my 1GB-of-RAM box.  =)

If not, I would appreciate feedback on how I could estimate the amount of 
memory required for processing with 'racluster' and associated argus 
tools, given a known number of source hosts and total bandwidth 
consumption.

I will check for the new RC and try it out when available.

_____________________________________________________
 Michael Hornung          Computing & Communications 
 hornung at washington.edu   University of Washington

On Mon, 26 Feb 2007 at 16:29, Carter Bullard wrote:

|So I have a workaround, and I'd like to get some feedback.
|I am going to propose a multi-stage process, but hopefully it
|won't be to complex to be useful.
|
|I have added the "-M rmon" option to ra(), which will enable:
|
|  ra -r files -M rmon -w - | rasplit -M count 1M -w /tmp/tmpdir/\$snet
|
|This will generate a good number of files in the /tmp/tmpdir directory,
|(use any name you like).  These files will be named for the network
|address of the population of data in the files, that are no bigger than
|1 million records long.  If the data files are large, then additional
|files with ".aaa" extensions will be build.  Then to aggregate:
|
|  racluster -m saddr -M Replace -R /tmp/tmpdir
|
|This will aggregate each of the intermediate files and replace them.
|Use the -V flag to get racluster() to tell you what it did with each file.
|
|To realize a single file with the aggregated data:
|
|  ra -R /tmp/tmpdir -w /tmp/output.file
|
|These will probably be sorted in string numeric order, but hopefully
|that will be ok?
|
|So, how does that sound as a workaround?  Can't currently do it with
|the existing client distribution, so, ..., it should be up later tonight.
|
|Carter
|
|
|
|On Feb 26, 2007, at 3:34 PM, Carter Bullard wrote:
|
|> Hey Michael,
|> racluster() can be a hog when it comes to memory, and 1G isn't really enough
|> to aggregate all the IP addresses in a good network.  Now this may seem
|> perplexing, but when racluster() aggregates, each flow, which in this case,
|> is each IP address, tracks an amazing amount of information, possibly too
|> much information in this case.  And this problem is a thorn for a lot of
|> people
|> on the list.
|> 
|> It will take me a while to restructure the methods that racluster() uses, to
|> minimize the amount of memory, but it is of course doable.  If we have a
|> set of "what are we trying to do" with the output, then that may help in
|> getting
|> an implementation out the door quickly.
|> 
|> Same thing applies to sorting, so, ....., this is not a bad topic for the
|> list.
|> 
|> I'm working on a workaround for ip addresses right now, so let me give you
|> an update in a few days.  The workaround is to use rasplit() to write out the
|> "-M rmon" data out into a number of files that are labeled using the network
|> address.  this will give us a set of files you can aggregate, and then you
|> can
|> merge the data back, to have a single aggregated file.
|> 
|> Hopefully this will work, and I'll have it up on the server tonight.
|> 
|> Carter
|> 
|> 
|> On Feb 26, 2007, at 2:10 PM, Michael Hornung wrote:
|> 
|> > Hi, new member to the list here and a new argus user.  I'm running an argus
|> > probe and a separate collector, retrieving info via a SASL connection
|> > between the two, and the collector is writing files to disk.
|> > 
|> > My collector is OpenBSD 4.0 on a P4 2.8Ghz with 1GB physical RAM and many
|> > times that in swap.  I'm running RC39.  When I try to combine several logs'
|> > worth of data (the log being archived when it reaches a given size) into
|> > one argus stream using 'racluster' I continually run out of memory when I
|> > do not expect to.  See an example:
|> > 
|> > % ls -l ../archive/20070226-[45]
|> > -rw-r--r--  1 argus  argus  287077860 Feb 26 09:50 ../archive/20070226-4
|> > -rw-r--r--  1 argus  argus  295809628 Feb 26 10:00 ../archive/20070226-5
|> > 
|> > % racluster -M rmon -m saddr -r ../archive/20070226-[45] -w clustered
|> > racluster[11726]: 11:04:40.200048 ArgusMallocListRecord ArgusMalloc Cannot
|> > allocate memory
|> > racluster[11726]: 11:04:40.200563 ArgusNewSorter ArgusCalloc error Cannot
|> > allocate memory
|> > Segmentation fault (core dumped)
|> > 
|> > (gdb) bt
|> > #0  0x1c04473b in ArgusNewSorter ()
|> > #1  0x1c00262f in RaParseComplete ()
|> > #2  0x1c003b92 in ArgusShutDown ()
|> > #3  0x1c028d69 in ArgusLog ()
|> > #4  0x1c028b9e in ArgusMallocListRecord ()
|> > #5  0x1c03afe2 in ArgusCopyRecordStruct ()
|> > #6  0x1c002d0a in RaProcessThisRecord ()
|> > #7  0x1c0029f5 in RaProcessRecord ()
|> > #8  0x1c01adb8 in ArgusHandleDatum ()
|> > #9  0x1c038713 in ArgusReadStreamSocket ()
|> > #10 0x1c038adb in ArgusReadFileStream ()
|> > #11 0x1c003829 in main ()
|> > 
|> > Any ideas?  Thanks.
|> > 
|> > _____________________________________________________
|> > Michael Hornung          Computing & Communications
|> > hornung at washington.edu   University of Washington
|> > 
|> 
|> Carter Bullard
|> CEO/President
|> QoSient, LLC
|> 150 E. 57th Street Suite 12D
|> New York, New York 10022
|> 
|> +1 212 588-9133 Phone
|> +1 212 588-9134 Fax
|> 
|> 
|
|Carter Bullard
|CEO/President
|QoSient, LLC
|150 E. 57th Street Suite 12D
|New York, New York 10022
|
|+1 212 588-9133 Phone
|+1 212 588-9134 Fax
|
|



More information about the argus mailing list