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