Introduction
Spotfire® Server is a Tomcat web application and the administrative center of any Spotfire environment. Spotfire environments can have a thick client called Spotfire® Analyst and zero-install web browser clients. This article provides some performance tuning that can be helpful in some scenarios for Spotfire Analyst users.
Data and metadata is streamed from the Spotfire Server to the Spotfire Analyst clients over the network. Oftentimes, Spotfire® Server is installed in a data center which may be close to the Spotfire Analyst users or may be some distance away on the network, e.g. on a wide area network (WAN) in which the data may have to travel long distances to get to the Spotfire Analyst users. The data center may be in the US with Spotfire Analyst users in the US, Europe, and Asia.
Tomcat Network Settings
These network settings for Tomcat could help with communication from Spotfire Server to the Spotfire Analyst clients. Configuring these network TCP settings on the Spotfire Server Tomcat instance can sometimes be helpful when passing data over a WAN. The configuration values can be added to the main client Connector for Spotfire Server in the tomcat/conf/server.xml file:
socket.rxBufSize="65536" socket.txBufSize="65536" socket.tcpNoDelay="false"
These settings are added after the server="TIBCO Spotfire Server" line and before the closing of the XML tag, '/>'. For example,
<Connector ………….. server="TIBCO Spotfire Server" socket.rxBufSize="65536" socket.txBufSize="65536" socket.tcpNoDelay="false" />
The rxBufSize and txBufSize are the socket receive buffer and socket send buffer size in bytes, respectively. The tcpNoDelay determines whether packets will be sent immediately or will delay until they are full. Setting the tcpNoDelay to false will cut down on network chatter because the double negative (False No Delay = Delay) enables delayed transfers. Buffers will not be sent until after the buffers are filled. This lowers the number of packets sent back and forth. Typically, improvements with this have only been seen over larger network distances but improvements have also been seen in local networks. The doubling or tripling or even quadrupling of rxBufSize and txBufSize may provide better performance, e.g. 2 x 65536=131072, 3 x 65536=196608, etc. This is the link to the Apache Tomcat configuration information for the Connector describing the parameters: Apache Tomcat 9 Configuration Reference: Java TCP socket attributes.
After one has added these settings to the server.xml, the Spotfire Server service will need to be restarted so that the new settings can be read. If one has multiple Spotfire Servers in a cluster, the server.xml file for each Spotfire Server will need to be modified, and each Spotfire Server service restarted. If one edits these settings, one will also need to restart the Spotfire Server service so that the new settings are read.
These settings should improve data loaded from Information Links to Spotfire Analyst and also improve large analysis files loaded from the Spotfire Library. These are actions in which bytes are streamed through the Spotfire Server to the Spotfire Analyst clients. If one does use these settings, make sure to test in various scenarios to ensure that one does see improvement. These configuration settings will need to be reapplied when one installs a new version of the Spotfire Server so make sure to document these changes in any system configuration documentation.
Recommended Comments
There are no comments to display.