Hi Claudio,
> Maybe it is time to change the default datalimit in the RDE. So maybe
> something like this may help.
> bgpd needs quite a bit more (temporary) memory when running with
> softreconfig. A lot of additional memory is needed on reloads and when
> large sessions flap that cause a lot of UPDATE messages.
>
> Side note: bgpd on amd64 needs quite a bit more memory then i386 because
> of the 64bit pointers.
Yeah... That's why I have 2G on this machine.... I hope this should be enougth
... 1G on i386 was ok... So...
I will tell you if this fix my problem... (if you don't hear me... so it can
be fixed...) ping me if you need a clear status.
Cheers.
Xavier
> --
> :wq Claudio
>
> Index: rde.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v
> retrieving revision 1.302
> diff -u -p -r1.302 rde.c
> --- rde.c 24 Nov 2010 00:58:10 -0000 1.302
> +++ rde.c 30 Nov 2010 10:12:56 -0000
> @@ -18,6 +18,8 @@
>
> #include <sys/types.h>
> #include <sys/socket.h>
> +#include <sys/time.h>
> +#include <sys/resource.h>
>
> #include <errno.h>
> #include <ifaddrs.h>
> @@ -156,6 +158,7 @@ pid_t
> rde_main(int pipe_m2r[2], int pipe_s2r[2], int pipe_m2s[2], int
pipe_s2rctl[2],
> int debug)
> {
> + struct rlimit rl;
> pid_t pid;
> struct passwd *pw;
> struct pollfd *pfd = NULL;
> @@ -184,6 +187,13 @@ rde_main(int pipe_m2r[2], int pipe_s2r[2
>
> setproctitle("route decision engine");
> bgpd_process = PROC_RDE;
> +
> + if (getrlimit(RLIMIT_DATA, &rl) == -1)
> + fatal("getrlimit");
> + rl.rlim_cur = RLIM_INFINITY;
> + rl.rlim_max = RLIM_INFINITY;
> + if (setrlimit(RLIMIT_DATA, &rl) == -1)
> + fatal("setrlimit");
>
> if (setgroups(1, &pw->pw_gid) ||
> setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) ||