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) ||

Reply via email to