racluster crashes, and memory utilization

Carter Bullard carter at qosient.com
Mon Feb 26 16:29:27 EST 2007


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


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist1.pair.net/pipermail/argus/attachments/20070226/5991f102/attachment.html>


More information about the argus mailing list