[OpenSIPS-Users] opensips 1.6.4 load balancing performance
Iulian Macare
iulian.macare at gmail.com
Fri Mar 11 09:32:15 CET 2011
Hello
I have installed OpenSips 1.6.4 on CentOS 5.5 32bit with load balancing &
mysql support ; I want to balance calls to 2 asterisk servers . I am sending
traffic to opensips from 1 x gnudialer & 1 x vicidial ( so from predictive
dialers ). Situation is like this:
+----+----------+--------------------------+-----------+------------+-------------+
| id | group_id | dst_uri | resources | probe_mode |
description |
+----+----------+--------------------------+-----------+------------+-------------+
| 1 | 1 | sip:192.168.254.241:5060 | pstn=300 | 0
| |
| 2 | 1 | sip:192.168.254.242:5060 | pstn=300 | 0
| |
+----+----------+--------------------------+-----------+------------+-------------+
600 channels in total , and I send around 500 channels ; OpenSips drops a
lot of calls; By drop I mean a call that is not sent to one of those 2
asterisk servers that I have.
The code for balancing in this situation is:
if (uri=~"^sip:0[1-9][0-9]*@") {
load_balance("1","pstn");
xlog("sending call $ru to $du\n");
t_relay();
exit;
}
! An important thing to say is that in /var/log/messages I see the specific
number that is sent to 192.168.254.241 for example ; So the parameter
xlog("sending call $ru to $du\n"); works ; The problem is that in logs on
192.168.254.241 that number never arrives in asterisk logs ; In logs of
vicidial & gnudialer I see it like congestion.
If I do something like this:
+----+----------+---------------------+-----------+------------+-------------+
| id | group_id | dst_uri | resources | probe_mode | description
|
+----+----------+---------------------+-----------+------------+-------------+
| 1 | 1 | sip:192.168.254.241 | pstn=150 | 0
| |
| 2 | 2 | sip:192.168.254.241 | pstn=150 | 0
| |
| 3 | 1 | sip:192.168.254.242 | pstn=150 | 0
| |
| 4 | 2 | sip:192.168.254.242 | pstn=150 | 0
| |
And I split opensips balancing in 2
if(src_ip==192.168.3.10 )
{
load_balance("1","pstn");
xlog("sending call to $du\n");
t_relay();
exit;
};
if(src_ip==192.168.3.11 )
{
load_balance("2","pstn");
xlog("sending call to $du\n");
t_relay();
exit;
};
and by doing this I get the same numbers of channels on opensips ( around
500 channels ) but I am splitting in 2 groups of load balancing; It can
process all the calls.
Another question that I saw is that when I make a single call to opensips
and I involve load balancing in /var/log/messages I get 2 times the same
message .. just like it send 2 time to asterisk server the call .. but on
asterisk I receive only one time.
Mar 10 14:58:47 opensips /usr/local/sbin/opensips[27611]: sending call to
sip:192.168.254.241
Mar 10 14:58:47 opensips /usr/local/sbin/opensips[27611]: sending call to
sip:192.168.254.241
Isn't load balancing fast enough the process the calls made by predictive
dialers, when over 300 channels is sent .. ? Or I have some mistakes made .
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20110311/61275290/attachment.htm>
More information about the Users
mailing list