Expansion advices

All installation and configuration problems and questions

Moderators: gerski, enjay, williamconley, Op3r, Staydog, gardo, mflorell, MJCoate, mcargile, Kumba, Michael_N

Expansion advices

Postby okli » Sun Nov 02, 2008 10:53 pm

Hi,

I'd like to get your advice on what would be the best way to expand a current setup.
Here is what we have at the moment:

1. Asterisk server (1), which is used as a IAX trunk for 2 vicidial servers. It has quad port T1 card, connected to our provider. It's not doing any transcoding.
Server is Dell 1750 1 x Xeon 2.4GHz, 1GB RAM. Loadavg is around 0.3-0.4 during busiest time.

2. Our main(old) vicidial server (2)- MySQL, Apache and Asterisk on a single server.
Dell 1850, 2 x 3.0GHz Xeon HT, 2GB RAM, 2 x 36GB SCSI disks in software RAID1. It's transcoding GSM-->ULAW. Recording only sales.
Currently we have 20 agents (group 1) on it without a problem. Loadavg is around 1.4-1.5 with rare spikes to around 2.5-2.8 with predictive dialing with max ratio 5.

3. New server (3)- another vicidial all-in-one setup. We have 10 agents (group 2) from another location using it.
Server is HP Polliant 320 G5, 1 x Quad Xeon 2.13GHz (one socket only), 2GB RAM, 2 x 160GB SATA disks in software RAID1, transcoding GSM->ULAW
Loadavg is below 0.6-0.8.

Server 2 and 3 are using the same Debian AMD64, same Apache, astguiclient versions (latest 2.0.5 svn). Only Asterisk is 1.2.26.2 on 2 and 1.2.30.2 on second. The 3 servers are in a local network and each has a second NIC with external IP. Agents are remotely and connect through internet.

Now group 1 needs to add another 15 agents in a few days, and possibly another 10 next month and I wonder what would be the best way to expand the current setup.
Need to preserve old campaigns data, logs etc. in the database.

Idea 1: Create another database asterisk_2 on server 3 and import all data from server 2 MySQL to it. Is the only change to be done in astguiclient.conf
VARDB_database => asterisk_2
Is database name 'asterisk' hardcoded anywhere?
Is it good idea to do so performance wise?
It seems to me the easiest way to preserve all data if database name is only in astguiclient.conf and performance will not suffer when having 2 separate databases for both servers.

Idea 2: Merge the two databases
I am not sure what would happen to some of the tables such as recording_log or vicidial_agent_log, which have auto incremented values.
I guess this is better variant for future expansions.

Idea 3: your one...

We would also buy a second CPU for server 1 and let it do all the transcoding, as well as extra RAM for server 3.

What do you think would be the best option? What else could be done?
Would server 2 actually handle ~40-45 agents if database and apache are on server 3?
okli
 
Posts: 671
Joined: Mon Oct 01, 2007 5:09 pm

Postby mflorell » Mon Nov 03, 2008 7:31 pm

Use your fastest server with the most RAM for your DB/web server, use all other servers for VICIDIAL servers with transcoding on-board. Merge everything into one functional system.
mflorell
Site Admin
 
Posts: 18406
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida

Postby okli » Mon Nov 03, 2008 7:54 pm

Thanks Matt.

As for the merging- what would happen to some of the tables such as recording_log or vicidial_agent_log, which have auto incremented values in the first column?

Is that a problem? Is the ID used in other tables?

The first problem I see is the callbacks table as it uses leadID. Since I will have to re- import the leads, all this will be lost I guess. Any workaround?

On a second thought- the main reason we split the servers like this was that group 2 (another call centre) has very bad internet, often causing mixed sessions and improper logouts. The solution is to logout everyone and login.

If I merge the 2 databases it would be nightmare to logout 50-60 agents at a time, should group 2 screw up the sessions.
In this light isn't it easier to use a second database asterisk_2 ?
Would that affect performance?
Is the only change required in astguiclient.conf for database name? Is database name "asterisk" hardcoded anywhere?
okli
 
Posts: 671
Joined: Mon Oct 01, 2007 5:09 pm

Postby okli » Tue Nov 04, 2008 2:45 pm

Ok, I closed my eyes and just merged the two databases. For now everything seems fine. Managed to preserve all callbacks and history for server 2, which was more important.

The only thing I don't understand clearly is if we need to set up load -ballancing, since we have asterisk+vicidial on 2 servers- on server 2 alone and on server 3, where MySQL+Apache/PHP are.

Since it's working fine now, without load-balance set up, I'd assume it's not mandatory.

Server 2- asterisk+vicidial
screen -r
There are several suitable screens on:
2970.ASTfastlog (Detached)
3116.ASTsend (Detached)
3007.asterisk (Detached)
3125.ASTVDremote (Detached)
3119.ASTlisten (Detached)
3122.ASTVDauto (Detached)
3113.ASTupdate (Detached)


part of crontab:
### keepalive script for astguiclient processes
* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl

### kill Hangup script for Asterisk updaters
* * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl

### updater for voicemail
* * * * * /usr/share/astguiclient/AST_vm_update.pl

### updater for conference validator
* * * * * /usr/share/astguiclient/AST_conf_update.pl

### flush queue DB table every hour for entries older than 1 hour
#11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q

### fix the vicidial_agent_log once every hour
#33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl

### updater for VICIDIAL hopper
#* * * * * /usr/share/astguiclient/AST_VDhopper.pl -q

### adjust the GMT offset for the leads in the vicidial_list table
#1 1 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug --postal-code-gmt

### reset several temporary-info tables in the database
#2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl

### optimize the database tables within the asterisk database
#3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl


Server 3- asterisk+vicidial_mysql+apache
screen -r
There are several suitable screens on:
3063.asterisk (Detached)
3021.ASTfastlog (Detached)
3167.ASTsend (Detached)
3173.ASTVDauto (Detached)
3176.ASTVDremote (Detached)
3019.ASTVDadapt (Detached)
3164.ASTupdate (Detached)
3170.ASTlisten (Detached)


part of crontab:
### keepalive script for astguiclient processes
* * * * * /usr/share/astguiclient/ADMIN_keepalive_ALL.pl

### kill Hangup script for Asterisk updaters
* * * * * /usr/share/astguiclient/AST_manager_kill_hung_congested.pl

### updater for voicemail
* * * * * /usr/share/astguiclient/AST_vm_update.pl

### updater for conference validator
* * * * * /usr/share/astguiclient/AST_conf_update.pl

### flush queue DB table every hour for entries older than 1 hour
11 * * * * /usr/share/astguiclient/AST_flush_DBqueue.pl -q

### fix the vicidial_agent_log once every hour
33 * * * * /usr/share/astguiclient/AST_cleanup_agent_log.pl

### updater for VICIDIAL hopper
* * * * * /usr/share/astguiclient/AST_VDhopper.pl -q

### adjust the GMT offset for the leads in the vicidial_list table
1 1,7 * * * /usr/share/astguiclient/ADMIN_adjust_GMTnow_on_leads.pl --debug --postal-code-gmt

### reset several temporary-info tables in the database
2 1 * * * /usr/share/astguiclient/AST_reset_mysql_vars.pl

### optimize the database tables within the asterisk database
3 1 * * * /usr/share/astguiclient/AST_DB_optimize.pl


Are the above correct?
okli
 
Posts: 671
Joined: Mon Oct 01, 2007 5:09 pm

Postby mflorell » Tue Nov 04, 2008 7:00 pm

The database/web server doesn't need to have any crontab entries.

You should take a look at the LOAD_BALANCE.txt doc for more information on multi-server systems.
mflorell
Site Admin
 
Posts: 18406
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida

Postby okli » Tue Nov 04, 2008 8:41 pm

On the datavase server there is a second asterisk, there is a second group of agents who are using it.

We do not need load balancing (as I understand it) between these 2 asterisk for now, just share one database, does LOAD_BALANCE.txt still apply?

In other words- if there is more than one asterisk+vicidial scripts server, is load balancing mandatory?

Right now for us it worked for 15-20 minutes for agents on server 2 on predictive dialing. Soon after the other group of agents logged on server 3 on manual dial, server 2 stopped making auto calls. vicidial_auto_calls gets cluttered with entries. Is it because of the not implemented load balancing or there is something else wrong?
okli
 
Posts: 671
Joined: Mon Oct 01, 2007 5:09 pm

Postby okli » Wed Nov 05, 2008 4:13 pm

Update- everything seems fixed.

Updated to the latest SVN.
Optimised databases.
Applied changes as per LOAD_BALANCE.txt.
okli
 
Posts: 671
Joined: Mon Oct 01, 2007 5:09 pm


Return to Support

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 46 guests