I use it via collectd and that should only be doing update. Graphing happens 
through rrdtool itself, directly on the files. Currently I got 275 connections 
(as per netstat). It runs as:

collectd  2515     1 20 Nov17 ?        16:50:17 
//opt/rrdtool-1.4.4.002147/bin/rrdcached -p 
/var/rrdtool/rrdcached/rrdcached.pid -w 600 -z 300 -l 10.21.0.43 -p 
/data/rrdcached/run/rrdcached.pid -l /data/rrdcached/run/rrdcached.sock -j 
/data/rrdcached/journal -b /data/rrdcached/data

Top shows it as:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
                                            
 2515 collectd  15   0 3000m 182m  896 S 19.9  1.1   1010:22 rrdcached          
                                            

Virt is currently bouncing between 2997 and 3000. It was initial around 2,776 I 
think after I started the newly compiled rrdcached and then restarted all the 
collectd instances (I need to get something in place which does that automatic).

The last few times I have looked it ran out of memory as far I can, failing to 
create new pthread or failed on mmaping:

Nov 17 13:37:40 log02 rrdcached[21009]: listen_thread_main: pthread_create 
failed.
Nov 17 13:39:04 log02 rrdcached[21009]: queue_thread_main: rrd_update_r 
(/data/rrdcached/data/co-db02.autc.com/disk-cciss_c0d2/disk_time.rrd) failed 
with status -1. (mmaping file 
'/data/rrdcached/data/co-db02.autc.com/disk-cciss_c0d2/disk_time.rrd': Cannot 
allocate memory)
Nov 17 13:41:34 log02 rrdcached[21009]: queue_thread_main: rrd_update_r 
(/data/rrdcached/data/co-db02.autc.com/interface/if_octets-sit0.rrd) failed 
with status -1. (mmaping file 
'/data/rrdcached/data/co-db02.autc.com/interface/if_octets-sit0.rrd': Cannot 
allocate memory)
Nov 17 13:47:40 log02 rrdcached[21009]: listen_thread_main: pthread_create 
failed.

I need to figure out what I can do about moving all this to a 64-bit machine, 
this is currently just EL5 i386. Initial I was going to install it as 64-bit 
(machine has 16GB) but due to issues with rrd and different file format between 
i386 and x86_64, I ended up using i386. Since then I have moved anything either 
to this machine locally (collectd and some other collectors) or using 
collectd/rrdcached for remote machines, so I could switch to x86_64, but would 
have to convert all the files when I do that.

If it weren't also my central syslog server, I would potential just reinstall 
it.



> -----Original Message-----
> From: Steve Shipway [mailto:[email protected]]
> Sent: Sunday, November 21, 2010 1:28 AM
> To: Ulf Zimmermann
> Cc: '[email protected]'
> Subject: RE: [rrd-users] rrdcached issues with larger number of clients
> via network/pthread
> 
> I had this same memory problem and error message a while back after 4
> days of running, but had thought it to be due to a couple of small
> memory leaks in the branch code (since fixed).
> 
> Can you indicate which rrdcached functions you are using -- ie, is it
> just used for update, or are you also using other functions like last,
> create, info, etc on a regular (not necessarily frequent) basis?  This
> would help to track down problems.
> 
> Another possibility is that the number of active threads has hit 1024
> (PTHREAD_THREADS_MAX -- this can be increased only by recompiling the
> kernel).  I don't have enough intimate knowledge of rrdcached to tell
> if it is possible for it to be 'leaking' threads; I suppose that since
> you have a separate thread for each active client connection, plus the
> write threads, a large number of clients might cause this to be
> reached?  To tell if this is it, use 'ps -L -p <rrdcached PID>' and
> count the number of threads for the rrdcached process.  For comparison,
> we have 15 on our server, and it has been running (with 1.4.trunk) for
> more than a week now with over 50 updates per second.
> 
> A separate issue is that, from what I can tell of the code, the rrd
> client is supposed to attempt a re-connect to the daemon in the event
> of the remote daemon restarting and the connection dying.  However it
> does seem that this doesn't necessarily happen -- I've had to restart
> the MRTG daemon, and you apparently need to restart collectd when the
> rrdcached is restarted.
> 
> Steve
> 
> Steve Shipway
> University of Auckland ITS
> UNIX Systems Design Lead
> [email protected]
> Ph: +64 9 373 7599 ext 86487

_______________________________________________
rrd-users mailing list
[email protected]
https://lists.oetiker.ch/cgi-bin/listinfo/rrd-users

Reply via email to