> I 've been working on a few changes to radrelay, mainly regarding making
the
> sleep time configurable and adding a few more things. The changes have
been
> made
> in radsqlrelay initialy but they 'll go in radrelay also. That won't
change
> your
> numbers but at least make a few things configurable.
>

good, that's a useful intermediate step - will allow to tune without
changing code.


> > I also tried various values of NR_SLOTS, but it doesn't change the
overall
> > time it takes to transfer a large backlog of accounting requests.
>
> Well, NR_SLOTS does not really matter if your accounting is quick enhough.
> Try commenting out the ms_sleep() between the do_send() calls.


I had tried this too, and just retried again, and the rate goes down to ~30
packets/sec.
Looks like the trafic becomes quite bursty, and the retransmission pattern
causes intermittent silent periods.

For example, packet 434 is a response from RS2 to RS1, and packet 435 goes
out 14.52
seconds after it (request from RS1 to RS2). I saw 37 periods of 1-sec or
more silence,
listed in this below:
  No.    Time        Source         Destination     Info
   65    1.900217    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=616)
  129    2.741964    192.168.12.80  192.168.12.34   Accounting Response(5)
(id=7, l=20)
  288    1.857164    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=618)
  290    5.989420    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=616)
  356    11.695879   192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=616)
  435    14.520559   192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=618)
  736    1.346075    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=618)
  911    2.044088    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=618)
 1079    2.088782    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=1, l=618)
 1264    1.970677    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=618)
 1463    1.826821    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=618)
 1660    1.881720    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 1916    1.593158    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 2065    1.727769    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=1, l=620)
 2762    1.740835    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 2831    4.966427    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 2885    8.717565    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 3230    2.007186    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 3376    2.199381    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 3597    1.820478    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 3731    1.794183    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 4167    2.125003    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 4707    2.043159    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=1, l=620)
 4965    1.586214    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 5131    2.111933    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 5298    2.088369    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 5521    1.750188    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 5892    1.934175    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 6459    1.809148    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=1, l=620)
 6855    1.856238    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 7029    2.015883    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 7390    1.962640    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 7764    1.936479    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 8246    1.374217    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 8492    1.877480    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=1, l=620)
 9022    2.055465    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)
 9491    1.375418    192.168.12.34  192.168.12.80   Accounting Request(4)
(id=0, l=620)

> > Note that the CPU on RS1 (running the radrelay instance that is
processing
> > the backlog) still takes less than 1% of CPU, with or without the above
> > changes.
>
> That's normal it's an I/O bound application.

well, CPU is ~0%, and so is disk usage, and bandwidth usage. For the moment,
no resource is pushed to its limit.


> threading sound like an idea yes. Another idea is to get load-balancing
code
> inside freeradius. Then you could do something like the following:
>         accounting {
>                 loadbalance {
>                         relay_detail1
>                         relay_detail2
>                         relay_detail3
>                 }
>         }
>
>         radrelay relay_detail1
>         radrelay relay_detail2
>         radrelay relay_detail3
>
>
> That way you don't need to change much (apart from a few changes to the
> server
> core) and you increase the overall performance by parallelizing radrelay
and
> the detail module.

Agree that would work too. I'd be glad to give it a try as soon as it's
available.

thanks,
Bruno



- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to