Page 1 of 1

High-end Server Performance?

PostPosted: Sat Aug 11, 2007 8:55 pm
by markytx
I'm working on a project for what will become a large call center. I'm considering buying multiple Dell blade servers with:
- Dual-processor, dual-core, 3.0 GHz Xeons
- 2 GB of memory (maybe 4)
- SAS or SATA hard drives

I'll have a cluster of separate MySQL servers to offload that processing. Gigabit ethernet. No transcoding. All calls recorded to local hard drives then copied off during the night to multi-terabyte storage servers (or maybe stored directly to the storage servers if it's more efficient). Recording mixing will be done at night when there are no calls.

Does anyone have a system like this and have any information as to how many simultaneous agent calls it can handle? We will need to grow this system in the near future if everything works out.

Any advice will be appreciated.

Mark Willis

PostPosted: Sun Aug 12, 2007 7:13 am
by Op3r
Normally what I would do is this

for 150 seats call center

1 Dual Xeon Dual Core Xeon with 4 GB memory for dbase

then 1 same spec as above for httpd

then 1 same spec for asterisk for every 25 agents (with recording and using ztdummy)



Its kinda overacting on the specs but at least it never gave me head aches. and that thing works perfectly :D

as for mysql clustering I never heard anyone who clustered the mysql database of vicidial.

PostPosted: Sun Aug 12, 2007 9:39 am
by markytx
Op3r wrote:then 1 same spec for asterisk for every 25 agents (with recording and using ztdummy)

Its kinda overacting on the specs but at least it never gave me head aches. and that thing works perfectly :D

as for mysql clustering I never heard anyone who clustered the mysql database of vicidial.


Thanks for the info. I forgot to mention I'll use a blade (or two) for the web server, as you say. Also, right now, this is mostly an inbound call center so there is not much load from the predictive dialer. That will change in the future. Everything is SIP with G.729.

I want to cluster the MySQL just because I want it to never go down. We'd like to grow this call center to several hundred simultaneous agents (or more) so I want it to be as reliable as possible.

It seems to me that with a large number of agents, lets say 500, there is a lot of strain on the database and web servers due to the 1-update-per-second-per-agent-issue. 500 web hits and database updates per second is a lot. Hence I want redundancy and load sharing.

I'm really having a hard time with 25 agents per box. We're talking about a box with effectively 4 3GHz cpu's (HT off) lots of memory, and lots of FSB bandwidth. Surely 25 agents per CPU would be more realistic? But I'm asking this here because I haven't run a large vicidial installation.

If I really could do 100 agents per box, I calculate the recording bandwidth at 2.34MB/sec. Is that unrealistic?

My second thought is to buy an entire blade system on ebay, maybe the older 1855's, with 10 servers, older 3.0 GHz dual proc systems. At least the price/agent ratio would be better then.

Does eaccellerator help?

All opinions appreciated!

Mark

PostPosted: Sun Aug 12, 2007 3:21 pm
by aster1
eaccelerator helps at reducing web server load.
Mysql cluster is very good idea :)
Since you do g729 on both sides if u have agents on internal lan then you can do agent side with ulaw and carrier side as g729 saving soem cpu on transcoding

I am pretty sure on a quad core asterisk server you can get more than 40-50 users (or even higher even though i never tried myself ) . Make sure you have external meetme timer like some X100p or digium card . Also at that high number of agents some raid levels on asterisk servers would be good if recording all calls .

PostPosted: Mon Aug 13, 2007 7:54 pm
by mflorell
For recording calls you should not have more than 50 agents on a single server, unless you can set up recording to RAM drive. As for mixing of recordings, it is not necessary if all you are doing is VICIDIAL recording, just copy over the -in file.

As for eaccelerator, ther is no reason not to use it, and it will reduce your web server load by 80%

PostPosted: Tue Aug 14, 2007 2:46 pm
by markytx
mflorell wrote:For recording calls you should not have more than 50 agents on a single server, unless you can set up recording to RAM drive. As for mixing of recordings, it is not necessary if all you are doing is VICIDIAL recording, just copy over the -in file.


OK, so if I have a 4GB server with web and mysql and everything else offloaded to other boxes, recording to a ram disk, how many agents can i get per server, using the spec above (4GB, dual proc dual core 3.0GHz)?

I'd really like to have 100, 75 would be nice and 50 tolerable.

Mark

PostPosted: Tue Aug 14, 2007 4:00 pm
by mflorell
What is the maximum number of lines-to-agent ratio that you will use?

PostPosted: Tue Aug 14, 2007 5:48 pm
by markytx
mflorell wrote:What is the maximum number of lines-to-agent ratio that you will use?


Everything is SIP, G729. Mostly inbound, let's say at any moment all agents are on calls with another 25% waiting on hold for an agent. We will do more outbound later, don't have a guesstimate for that.

PostPosted: Tue Aug 14, 2007 9:31 pm
by mflorell
If you are doing inbound, then you shouldn't have the rapid-dialing load issues that you have when outbound dialing. The codec translation is what will load things up on your machine because you are using G729.

I would recommend looking at the Digium transcoding card to take that part off of your system load, and give you the possibility of more capacity.