Thanks for this Alejandro

I'll look at trying the fake smsc.  The carrier has given me a throughput of
50, and advised that I split this across 2 binds, which I have done, setting
the throughput figures at 25 and 25. I never see any throttling erors.

The reason I set the max-pending-submits to 100 was that, with log level 0,
and max-pending-submits set to 10,  I was able to see that I was only able
to send 10 submit_sm, and would then have to wait for a submit_sm_resp
before I could submit another message. I thought that increasing to 100
would give me a better window, as sometimes my submit_sm_resp seem to take
forever. Maybe I need to talk to the carrier about the length of time it
takes to get the submit_sm_resp back from them.

Thank for your input. I think I'll open a ticket with the carrier in case
it's simply a misconfig on their side.

Dave

On 3/15/08, *Alejandro* Guerrieri <[EMAIL PROTECTED]> wrote:
>
> 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