Hi, I am currently evaluating the performance of voicemail when using ODBC voicemail storage and ODBC realtime voicemail config.
When there are about 100 parallel connections to asterisk (1.4.11, btw), all leaving voicemails, the peformance becomes really abysmal: Connections take over a minute before they are even accepted, etc. Since this does not happen when just using realtime for the voicemail config, but storing the messages itself on the local harddisk, I assumed some db (Oracle) or ODBC bottleneck (the CPU usage never goes over 20%). But a few hundred added debug statements and some tcpdump sessions later, to my surprise I found out that most of the time is spent waiting for a lock on the "users" list in "find_user". So far I couldn't find out why this only happens with ODBC message storage, but since this users list is - as far as I can see from the source - unused when using realtime, do I even need this lock? When the user data is fetched from the db, the operation should be atomic - either it's there or it's not there, right? So do you think it is safe to remove the AST_LIST_LOCK call for realtime usage? And does anybody have any insights on these performance issues? (I also found out that it takes sometimes up to 6 seconds from the SQLExecute call in res_odbc until the call is really forwarded to the database - but I assume this is an ODBC issue) Thanks for your help, -Tobias _______________________________________________ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-dev mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev
