When you try to take an action on any particular MeetMe conference, MeetMe locks the data structure that holds all of the conferences, searches through the list for that conference, takes the action on that conference, then unlocks the conference list. This is so that two different threads do not modify the same conference at the same time resulting in either a crash or a deadlock. There are two major things that contribute to the load.
The first is how quickly Asterisk can find the conference. Prior to Asterisk 1.6, Asterisk used Linked Lists (
https://en.wikipedia.org/wiki/Linked_list) for all of its core data structures. As such MeetMe could potentially have to search through every single conference till it found the right one. In 1.6 they switched to Hash Tables (
http://en.wikipedia.org/wiki/Hash_table) which are considerably faster, but take up more memory. As such this lock in Asterisk 1.8 should be considerably faster.
The second is how long the action takes to process. Most actions are very fast, however playing those sounds was not. If I recall correctly shortening those sounds to 1/4 their size caused a 10% reduction in load on the system Matt was discussing.
Ultimately if you have that many agents on a single server you should definitely try 1.8 if you are not already, and make sure it has the enter.h and leave.h files replaced with our versions. The version of 1.8 from our download site already has these applied.
Michael Cargile | Director of Engineering | ViciDialGroup | http://www.vicidial.com
The official source for VICIDIAL services and support. 1-888-894-VICI (8424)