Cipango performance configuration is mainly function of JVM memory configuration.
The memory needed is function of number of concurrent calls, application, session duration.
Performance will be greatly improved if the following line is set in
JAVA_OPTIONS=="-Xmx1700M -Xms1700M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC"
To allow Cipango to use more than 2 Gb of RAM, you should use a 64 bits OS and JVM.
See in Configuring and Running Cipango to see how to set this JVM property.
Adapt maximum heap size (-Xmx) and minimum heap size (-Xms) with memory available.
Ensure that in every case only RAM is used. (no swap used)
These parameters are not set by default in order to allow to run Cipango on computers with few memory.
message tracing should be disabled: Ensure in cipango.xml, that the following XML is commented.
<Set name="accessLog"> <New class="org.cipango.server.log.FileMessageLog"> ... </New> </Set>
As written in sip servlet specification, for reasons of performance, it is recommended that applications explicitly invalidate SIP application session and SIP session objects as soon as possible.
TCP and UDP received buffer size
If there is some retransmissions and CPU is not at 100% usage, this could be the sign that buffer size is too small: some packets are destroyed by the OS before its can be handled by JVM.
More details on buffer sizing are available on http://www.29west.com/docs/THPM/udp-buffer-sizing.html
To detect packets lost due to small received buffer size, use the command:
Impossible to detect
Setting buffer size
Detect memory leaks
We recommend to use YourKit Java Profiler.
YourKit is kindly supporting open source projects with its full-featured Java Profiler.