Tune the environment to run SIP servlets
We might want to implement one or more of the following tuning suggestions if we are encountering performance issues while running SIP servlets.
The following recommendations are provided as is without any implied warranty.
Tasks
- Make the following changes to the JVM settings.
(iSeries) (Dist) To make these changes, in the administrative console, click...
Servers > Server Types > WebSphere application servers > server > Java and Process Management > Process Definition > Java Virtual Machine.
(ZOS) To make these changes, in the administrative console, click Servers > Server Types > WebSphere application servers > server > Java and Process Management > Process Definition > Control > Java Virtual Machine.
- Select Enable Verbose garbage collection.
- Set Initial heap size to 1284.
- Set Maximum heap size to 1284.
- Specify -Xmn150m -Xgcpolicy:gencon -Xtgc:parallel -Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate -Xdump:heap:events=user,request=exclusive+prepwalk+compact -Xcompactexplicitgc -XX:MaxDirectMemorySize=256000000 -Xdump:heap:events=user,request=exclusive+prepwalk+compact in the Generic JVM arguments field.
- Change the following JVM log settings for the application server.
(iSeries) (Dist) To make these changes, in the administrative console, click...
Servers > Server Types > WebSphere application servers > server > Java and Process Management > Process Definition > Logging and Tracing > JVM Logs.
(ZOS) To make these changes, in the administrative console, click...
Servers > Server Types > WebSphere application servers > server > Java and Process Management > Process Definition > Control > Logging and Tracing > JVM Logs.
- Under System.out, specify 20 for the File size maximum Size property and 2 for the Maximum number of historical log files property.
- Under System.err, specify 20 for the File size maximum Size property and 2 for the Maximum number of historical log files property.
- Change the following node agent detection monitoring policy settings
These setting changes enable the JVM to detect if the operating system has hung.
To make these changes, in the administrative console, click...
Servers > Server Types > WebSphere application servers > server > Java and Process Management > MonitorPolicy.
- Set the Maximum startup attempts property to 2.
- Set the Ping interval property to 30.
- Set the Ping timeout property to 60.
- Create a thread pool, and specify SipContainerPool for the Name property, and 45 for both the Minimum size, and Maximum size properties.
- Make the following changes to the SIP container settings.
To make these changes, in the administrative console, click...
Servers > Server Types > WebSphere application servers > server > SIP Container Settings > sip_container.
- Set the Maximum application sessions property to 36000.
- Set the Maximum messages per averaging period property to 26640.
- Set the Maximum dispatch queue size property to 5220.
- Set the Averaging period property to 30000.
- Set the Statistics update rate property to 3000.
- Select SipContainerPool from the list of available thread pools.
- Click Custom Properties > New, and add the following SIP container custom properties to your SIP container settings.
Name Value javax.sip.max.object.pool.size 1000 javax.sip.stat.report.interval 0 max.tu.pool.size 1000 weight.overload.watermark 1 end.of.service.replication true immediate.replication false thread.message.queue.max.size 5000 bootstrap.batch.size 1000 bootstrap.blocking.delay 500 - From the SIP container settings page, click SIP container transport chains > SIPCInboundDefaultUDP > UDP Inbound channel (UDP 1) > Custom Properties >New, and add the following two custom properties.
Name Value sendBufferSizeSocket 3000000 receiveBufferSizeSocket 3000000
- Make the following changes to the proxy server settings for each of our proxy servers.
To make these changes, in the administrative console, click...
Servers > Server Types > Proxy servers > proxy_server > Proxy server settings.
- Create two new ports.
To add these ports, click Ports on the Proxy servers > proxy_server page.
Specify the following settings for the first port:
- Select User-defined Port.
- Specify SIP_LB_ADDRESS in the Port name field.
- Specify the name of the Load Balancer (cluster) address in the Host field.
- Specify 5060 in the Port field.
Specify the following settings for the second port:
- Select User-defined Port.
- Specify HTTP_LB_ADDRESS in the Port name field.
- Specify the name of the Load Balancer (cluster) address in the Host field.
- Specify 80 in the Port field.
- On the Ports page, change the value of the Host field for the DCS_UNICAST_ADDRESS port to the host name of the management network for the proxy server. This network handles WebSphere Application Server inter-process communication, such as Distribution and Consistency Services (DCS) communication.
- On the Ports page, change the value of the Host field for the PROXY_HTTPS_ADDRESS, PROXY_HTTP_ADDRESS, PROXY_SIPS_ADDRESS and PROXY_SIP_ADDRESS ports to the host name of the network that is handling SIP traffic for the proxy server.
- Add the following custom properties.
To add these properties, from the Proxy server settings page, click SIP proxy settings > Custom Properties.
Name Value isSipComplianceEnabled false serverUDPInterface The host name of the network that is handling SIP traffic for the proxy server. This value becomes the Container Facing Interface. serverUDPPort 5080 This port becomes the Container Facing Port. LBIPAddr The Load Balancer IP address. This address is not the cluster address. SIPAdvisorMethodName Options maxThroughputFactor 90 perSecondBurstFactor 200 burstResetFactor 120 sipProxyStartupDelay 120000 proxyTransitionPeriod 360 minDeflatorRatio 6 maxDeflatorRatio 10 keepAliveInterval 2000 keepAliveFailures 3 clusterRouteConfigUpdateDelay 60000 localOutboundTCPAddress The IP address of the local outbound TCP connection localOutboundTCPPort The port number of the local outboud TCP connection receiveBufferSizeSocket 3000000 sendBufferSizeSocket 3000000 - Delete the UDP transport chain UDP_SIP_PROXY_CHAIN
To delete the UDP transport chain UDP_SIP_PROXY_CHAIN, click SIP proxy server settings > SIP proxy server transports on the Proxy server settings page, select the UDP transport chain UDP_SIP_PROXY_CHAIN> Delete.
- Change the settings of the SIP proxy server transport.
To change the settings of the SIP proxy server transport, click SIP proxy server settings > SIP proxy server transports > New on the Proxy servers > proxy_server page, and then specify the following settings for the new transport:
- Specify SIP_LB_CHAIN in the Transport chain name field.
- Specify proxy in the Transport chain template field.
- On the next administrative console page, select Use existing port and SIP_LB_ADDRESS from the lists of available options.
- Change the settings of the HTTP proxy server transport.
To change the settings of the HTTP proxy server transport, click HTTP proxy server settings > Proxy server transports > New on the Proxy servers > proxy_server page, and then specify the following settings for the new transport:
- Specify HTTP_LB_CHAIN in the Transport chain name field.
- Specify proxy in the Transport chain template field.
- On the next administrative console page, select Use existing port and HTTP_LB_ADDRESS from the lists of available options.
- Add the following custom properties to the UDP channel settings.
To add new custom properties to the UDP channel settings, click SIP proxy transport chains > UDPInboundChannel > Custom Properties > New on the SIP proxy server settings page.
Name Value sendBufferSizeSocket 3000000 receiveBufferSizeSocket 3000000 - Add the following custom properties to the HTTP proxy server settings.
To add this property, click Proxy server settings > Proxy settings > Custom Properties > New on the Proxy servers > proxy_server page.
Name Description Value localOutboundTCPAddress Local outbound interface address The proxy address of the network that is handling SIP traffic. localOutboundTCPPort 1080 Local outbound port - Change the following JVM settings for the proxy server.
(iSeries) (Dist) To make these changes, in the administrative console, click...
Servers > Server Types > WebSphere proxy servers > proxy_server > Java and Process Management > Process Definition > Java virtual machine.
(ZOS) To make these changes, in the administrative console, click Servers > Server Types > WebSphere proxy servers > proxy_server > Java and Process Management > Process Definition > Control > Java virtual machine.
- Set Initial heap sze to 300.
- Set Maximum heap size to 450.
- Add -Xmo60m;-Xgcpolicy:gencon;-Xgc:noAdaptiveTenure,tenureAge=8,stdGlobalCompactToSatisfyAllocate;-Xtgc:parallel -Xdump:heap:events=user,request=exclusive+prepwalk+compact;-Xloa;-Xloaminimum0.03 to the Generic JVM argumentsfield.
If we are running over 50 proxy servers in the environment, we might also want to specify -Xmo200m to -Xmo600m
- Change the following JVM log settings for the proxy server.
(iSeries) (Dist) To make these changes, in the administrative console, click...
Servers > Server Types > WebSphere proxy servers > proxy_server > Java and Process Management > Process Definition > Logging and Tracing > JVM Logs.
(ZOS) To make these changes, in the administrative console, click...
Servers > Server Types > WebSphere proxy servers > proxy_server > Java and Process Management > Process Definition > Control > Logging and Tracing > JVM Logs.
- Under System.out, specify 20 for the File size maximum Size property and 2 for the Maximum number of historical log files property.
- Under System.err, specify 20 for the File size maximum Size property and 2 for the Maximum number of historical log files property.
- Set the size of the application server transport buffer and the proxy server transport buffer to 100 megabytes.
For the application server, in the administrative console, click Servers > Server Types > WebSphere application servers > server, and enter 100 for the Transport buffer size property.
For the proxy server, in the administrative console, click...
Servers > Server Types > WebSphere proxy servers > server, and enter 100 for the Transport buffer size property.
- Set the size of the deployment manager transport buffer to 100 megabytes.
In the administrative console, click...
System administration > Deployment manager > Core group service, and enter 100 for the Transport buffer size property.
- For each node agent, set the size of the node agent transport buffer to 100 megabytes.
In the administrative console, click...
System administration > Node agents > node_agent Core group service, and enter 100 for the Transport buffer size property.
- Make the following changes to the core group settings.
- Change the settings for the IBM_CS_FD_PERIOD_SECS, IBM_CS_FD_CONSECUTIVE_MISSED, and IBM_CS_DATASTACK_MEG core group custom properties.
The following values are recommended for these custom properties:
For more information on these properties, see the core group custom properties documentation.
Name Description Value IBM_CS_FD_PERIOD_SECS Specify, in seconds, how frequently the Failure Detection Protocol checks the core group network connections that the discovery protocol establishes. The Failure Detection Protocol notifies the Discovery Protocol if a connection failure occurs. 2 IBM_CS_FD_CONSECUTIVE_MISSED Specify the consecutive number of heartbeats that must be missed before the core group member is considered failed. Do not configure this custom property unless we are running in a mixed cell environment that includes at least one core group containing a mixture of v7.0 and Version 6.x processes.
3 IBM_CS_DATASTACK_MEG Specify, in megabytes, the amount of memory available for synchronization. Do not configure this custom property unless we are running in a mixed cell environment that includes at least one core group containing a mixture of v7.0 and v6.x processes.
100
Core group custom properties