We process the sent_sms into another table on they fly. Maximum size the 
sent_sms table gets is maybe 40k tops but mostly it averages around 10K. We see 
this once 1 week maybe.

I have really made every attempt to remove any bottlenecks in terms unwieldy 
database sizes to allow kannel to work in a favourable environment.

Is there reason to add multiple sqlboxes to feed bearer box?

Is there maybe a concurrency setting I can do for bearer box to receive the 
messages? I did not come across documentation aside from email posts with 
respect to the limit-per-cycle setting.

I have another question, would we be able to get faster performance if we went 
flat file for the kannel operations?

Regards


> On 08 Dec 2015, at 15:12, spameden <spame...@gmail.com> wrote:
> 
> 
> 
> 2015-12-08 12:51 GMT+03:00 Grant Vorenberg <gr...@saicomvoice.co.za 
> <mailto:gr...@saicomvoice.co.za>>:
> <saicom-voice-services.gif> 
> <https://branding.synaq.com/api/r/id/22474050/map/0>
> Hi
> 
> We manage how big send_sms gets. The queue builder puts in 500 messages at a 
> time to a total maximum of 3000 from a larger main queue which can go as big 
> as 2M.
> 
> 2M is kinda big table, how big is sent_sms? 10-30M ?
> 
> I think your issue happens when kannel tries to move from send_sms to 
> sent_sms table already submitted message this is where it hangs. You can try 
> testing it yourself with simple query:
> 
> INSERT INTO sent_sms SELECT * from send_sms where sql_id=XXXX and measure 
> time per query.
> 
> if it's instant there should be no problem.
> 
> Generally it's better to leave sent_sms table at around 1M records not more, 
> old records you can move to other table daily.
>  
> 
> Actual hardware is a VCenter on blades with plenty ram, cpu and hp 3PAR(144GB 
> raid card ram for caching in total) fibre attached storage with dedicated SSD 
> specifically for DB. Calculated IOPS are stupidly good.
> 
> The VMs are as follows:
> Queuebuilder: 4 vcpu, 16Gb on SAS
> Kannel: 4 vcpu, 8GB on SAS
> MysqlDB-Master: 8 vcpu, 32GB on SSD
> MysqlDB-Slave: 8 vcpu, 32GB on SSD
> 
> MySQL on SSDs should work just fine and you should have big number of iops. 
> Btw, I recommend to use MariaDB instead of regular MySQL (mariadb.org 
> <http://mariadb.org/>) it's very fast and reliable, for InnoDB it uses 
> modified XtraDB engine which has some tweaks.
> 
> did you check mysqladmin status to indicate number of queries processed per 
> second?
> 
> 
> The Load on the MysqlDB-Master averages around 0.4 with max of 0.6 (single 
> spike). Memory usage hangs around 24GB. I will need to check the process list 
> to double check, but we generally don’t see much strain here either, but I 
> stand to be corrected. 
> DB optimasations as follows:
> 
> key_buffer              
> = 16M
> max_allowed_packet      
> = 16M
> 
> maybe increase a bit max_allowed_packet to 64mb
> 
> innodb_buffer_pool_size 
> = 12G
>  
> this is fine
> 
> query_cache_limit       
> = 20M
> query_cache_size        
> = 128M
> 
> query_cache in kannel's case doesn't affect much, so it's ok to have it like 
> that.
>  
> 
> No extra indexes on the send_sms as we limit its size to 3000.
> 
> make sure both send_sms and sent_sms tables are InnoDB type.
>  
> 
> All reporting is done on the slaveDB, so no extra strain on monitoring and 
> reporting.
> 
> under 'reporting' do you mean your dlr_url is called to external script which 
> is connected to slaveDB?
>  
> 
> Historically, we have queued at the SMPP connector and not at the smsbox. We 
> generally reached a top (AVG) speed of 73 msg/s but when I see the smsbox 
> queued figure rise and the internal smpp queue drop to 0, we only hit half of 
> this speed.
> 
> I did not see the limit-per-cycle setting in the sqlbox documentation (2011). 
> I also checked the code and saw that the select limit was a variable instead 
> of hard-limited.
> 
> Yeah, it was introduced some time ago alongside with other optimisations 
> (year ago or so, can't remember now), I think it should be in new 
> documentation. However, you need to build documentation to get more recent 
> version of it.
> 
> 
> Regards
> G
> 
>> On 08 Dec 2015, at 10:52, spameden <spame...@gmail.com 
>> <mailto:spame...@gmail.com>> wrote:
>> 
>> 
>> 
>> 
>> Grant Vorenberg
>> Technical Manager
>> Office       0861 SAICOM (724 266)
>> Direct       010 140 5012
>> Support      010 140 5050
>> Cell         -
>> Fax  010 140 5001
>> Email        gr...@saicomvoice.co.za <mailto:gr...@saicomvoice.co.za>
>> Visit our website    www.saicomvoice.co.za <http://www.saicomvoice.co.za/>
>> 
>> <logo-image.png> <http://www.saicomvoice.co.za/> 
>> 
>> 2015-12-08 11:23 GMT+03:00 Grant Vorenberg <gr...@saicomvoice.co.za 
>> <mailto:gr...@saicomvoice.co.za>>:
>> <saicom-now-offers-cloud-pbx.gif> 
>> <https://branding.synaq.com/api/r/id/22469522/map/0>
>> 
>> Here is my config:
>> 
>> group = sqlbox
>> id = sqlbox-db
>> smsbox-id = sqlbox
>> #global-sender = ""
>> bearerbox-host = localhost
>> bearerbox-port = 13001
>> smsbox-port = 13005
>> smsbox-port-ssl = false
>> sql-log-table = sent_sms
>> sql-insert-table = send_sms
>> log-file = "/var/log/kannel/kannel-sqlbox.log"
>> log-level = 0
>> #sqlbox optimisation GAV 20151207
>> limit-per-cycle = 100
>> 
>> 
>> Try monitoring your database workload.
>> 
>> Is send_sms table is big?
>>  
>> 
>>> On 07 Dec 2015, at 15:06, spameden <spame...@gmail.com 
>>> <mailto:spame...@gmail.com>> wrote:
>>> 
>>> 
>>> 
>>> 
>>> Grant Vorenberg
>>> Technical Manager
>>> Office      0861 SAICOM (724 266)
>>> Direct      010 140 5012
>>> Support     010 140 5050
>>> Cell        -
>>> Fax         010 140 5001
>>> Email       gr...@saicomvoice.co.za <mailto:gr...@saicomvoice.co.za>
>>> Visit our website   www.saicomvoice.co.za <http://www.saicomvoice.co.za/>
>>> 
>>> <logo-image.png> <http://www.saicomvoice.co.za/>
>>> 2015-12-07 14:03 GMT+03:00 Grant Vorenberg <gr...@saicomvoice.co.za 
>>> <mailto:gr...@saicomvoice.co.za>>:
>>> <saicom-now-offers-cloud-pbx.gif> 
>>> <https://branding.synaq.com/api/r/id/22451334/map/0>
>>> 
>>> Hi Guys
>>> 
>>> I am a new to the list subscription and am looking for a little clarity on 
>>> the SQLBOX.
>>> 
>>> I have a Debian Wheezy box running:
>>> Kannel sqlbox version 1.4.4
>>> Libxml version 2.7.2
>>> MySQL 5.5.43
>>> 
>>> The front end is custom and drops message into the send_sms table. These 
>>> messages are terminated via smpp to another system of ours. We process and 
>>> clean out the sent_sms table.
>>> 
>>> I gather stats on the performance of the system using the status page: 
>>> http://localhost:13000/status <http://localhost:13000/status>
>>> 
>>> I am trying to understand the following output from the screen:
>>> Box connections:
>>>        smsbox:sqlbox, IP 127.0.0.1 (2532 queued), (on-line 0d 2h 48m 19s)
>>> 
>>> This means there is a queue on sqlbox. 
>>> 
>>> Queue works like this:
>>> 
>>> First sqlbox gets messages from DB backend, then it adds messages to own 
>>> queue, then it sends message into bearerbox queue and bearerbox splits this 
>>> queue over your connected SMSC/upstream operators. 
>>> 
>>> So if there is a huge queue on sqlbox it means there is a big amount of MTs 
>>> in your send_sms table and sqlbox is still submitting those to bearerbox.
>>> 
>>> To optimize sqlbox I'd recommend adding this parameter into sqlbox section 
>>> (after group = sqlbox):
>>> limit-per-cycle = 50 this means sqlbox will get 50 bulk messages from DB 
>>> per query at once instead of 1.
>>> 
>>>  
>>> 
>>> What I noticed is when our send speeds start dipping on the smpp connection 
>>> (internal/default route), this smsbox:sql queue starts building up.
>>> 
>>> When the smsbox:sqlbox queue starts building up like this:
>>> 1)What causes this?
>>> 2) What does this signify?
>>> 
>>> We generally don’t see this behaviour very often, but its effect is 
>>> detrimental to the performance of the system so I would like to know what 
>>> causes the growth and how to combat it so our send speed is safe-guarded.
>>> 
>>> 
>>> Here is an excerpt from my config files:
>>> 
>>> <smsbox conf>:
>>> group = sqlbox
>>> id = sqlbox-db
>>> smsbox-id = sqlbox
>>> #global-sender = ""
>>> bearerbox-host = localhost
>>> bearerbox-port = 13001
>>> smsbox-port = 13005
>>> smsbox-port-ssl = false
>>> sql-log-table = sent_sms
>>> sql-insert-table = send_sms
>>> 
>>> 
>>> <kannel.conf>:
>>> group = smsbox
>>> bearerbox-host = 127.0.0.1
>>> sendsms-port = 13013
>>> global-sender = 13013
>>> smsbox-id=my_smsbox
>>> 
>>> group=smsbox-route
>>> smsbox-id=sqlbox
>>> smsc-id=internal
>>> 
>>> 
>>> Regards
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Grant Vorenberg
>>> Technical Manager
>>> Office      0861 SAICOM (724 266)
>>> Direct      010 140 5012
>>> Support     010 140 5050
>>> Cell        -
>>> Fax         010 140 5001
>>> Email       gr...@saicomvoice.co.za <mailto:gr...@saicomvoice.co.za>
>>> Visit our website   www.saicomvoice.co.za <http://www.saicomvoice.co.za/>
>>> 
>>> <logo-image.png> <http://www.saicomvoice.co.za/>
> 

Reply via email to