Dave,

I can't make a 100% accurate diagnostic without further tests, but looks
like the bottleneck is on the links with the carrier.

You can try using the fake smsc module instead of your links, and queue a
fair amount of traffic. If the bottleneck is on those links, you'll get much
better performance when using the fake smsc.

Probably, what it's happening is that the smsc is only accepting a small
amount of traffic, and maybe you should lower the throughput values to avoid
retries and throttling on the other side.

What I'd try:

* Try reducing max-pending-submits to 10. Experiment with other values also.
100 looks rather high imho.
* Check on your logfiles if there's any "throttling errors".
* Also ask your smsc what's the maximum accepted rate and set the thorughput
value to that value.

Hope it helps,

Alejandro

On Fri, Mar 14, 2008 at 9:14 PM, Dave Clarke <[EMAIL PROTECTED]> wrote:

> Hi,
>
> Having used kannel for a couple of years, I am now at a point where I need
> to start ramping up my throughput, but I am finding that I can't sustain any
> more than 2-3 messages a second through my 2x25 SMPP binds.
>
> If I walk through my application:
>
> - PHP/Apache/Postgresql application presents messages to smsbox.  On this
> occasion I try to send 2200 messages through. They are delivered to smsbox
> in blocks of 25 numbers.  If I study smsbox.log, I see the entire process
> of passing the messages to smsbox takes 26 seconds.
>
> - smsbox then chops these up into individual messages and queues them. If
> I study smsbox-access.log, again I see all 2200 send-SMS requests added in
> about 26 seconds. So far so good.
>
> - If I now go to access.log, I see that I'm taking 22 MINUTES to do the
> 2200 transmits.
>
> Because this is so long, more customers come along with big sends, and
> soon I have 10,000 messages queued and waiting.  Result is a system churning
> through 2-3 messages per second.
>
> I'm guessing this is a simple matter of my not understanding the correct
> settings for my max-pendings etc.
>
> What I'm hoping is to kick off a slightly high-level discussion on the
> factors I need to look at to achieve X messages per second, and sustain this
> level of trafic before I get a snowball effect with queued messages and a
> flood of DLRs.  My thinking, which seems to have been wrong, was that if I
> have a through put to SMSC of 50msgs per second, and an ACK takes say 3
> seconds to come back, then I should handle 3x50=150 pending messages, so I
> set max-pending-submits = 100 on both binds. Doesn't seem to have done the
> trick.
>
> I'd appreciate any views or suggestions on how I scale this thing. Let me
> know if you need more info.
>
> Thanks,
> Dave
>
> Points to note:
> - This is CVS today (20080314)
> - using file as store
> - All messages have DLR mask 31, so lots of DLRs coming in.
> - using mysql for dlrs
> - everything currently on a single Dual P4 IBM Netfinity, 4GB RAM. Not
> cutting edge, but a good solid system, RAID array etc.
>
> Config:
>
> # CORE
> group = core
> admin-port = 13000
> smsbox-port = 13001
> admin-password = bar
> status-password = foo
> log-file = "/logs/kannel1/kannel.log"
> access-log = "/logs/kannel1/access.log"
> dlr-storage = mysql
> store-type = file
> store-location = "/logs/kannel1.store"
> log-level = 1
>
> group = mysql-connection
> id = mydlr
> host = localhost
> username = xx
> password = xx
> database = kannel_dlr
> max-connections = 1
>
> # SMSC SMPP A 1
> group = smsc
> smsc = smpp
> smsc-id = smpp_A
> host = xxx
> port = 6700
> receive-port = 6700
> system-type = ""
> service-type = CMT
> dest-addr-ton = 1
> dest-addr-npi = 1
> enquire-link-interval = 60
> address-range = ""
> throughput = 25
> log-file = "/logs/kannel1/smppA1.log"
> log-level = 1
> max-pending-submits = 100
>
> # SMSC SMPP A 2
> group = smsc
> smsc = smpp
> smsc-id = smpp_A
> host = xxx
> port = 6700
> receive-port = 6700
> system-type = ""
> service-type = CMT
> dest-addr-ton = 1
> dest-addr-npi = 1
> enquire-link-interval = 60
> address-range = ""
> throughput = 25
> log-file = "/logs/kannel1/smppA2.log"
> log-level = 1
> max-pending-submits = 100
>
> # SMSBOX SETUP
> group = smsbox
> bearerbox-host = localhost
> sendsms-port = 13013
> smsbox-id = wtsmsbox
> sendsms-chars = "0123456789 +-"
> log-file = "/logs/kannel1/smsbox.log"
> log-level = 1
> access-log = "/logs/kannel1/smsbox-access.log"
> mo-recode = 1
> max-pending-requests = 1024
>
>
>

Reply via email to