0 Replies Latest reply on Aug 4, 2016 12:50 AM by mohilkhare

    Recommended OS level tcp and other linux settings for wildfly ha cluster (including infinispan and jgroups)

    mohilkhare

      Hi,

       

      We are using wildfly in a clustered environment which span across multiple Data centers. Wildfly cluster is being used mostly for session replication and for using singleton cache container. What should be the linux level Tcp settings ( like Keep alive interval, etc ) and other settings for optimal performance of wildfly cluster, including but not limited to, infinispan and jgroups. Currently we have a max latency of 10-15 ms and loss of 0.1% across data centers.

       

      We are using following wildfly ha config:

       

      <subsystem xmlns="urn:jboss:domain:io:1.1">

                  <worker io-threads="4" name="default" task-max-threads="32"/>

                  <buffer-pool name="default"/>

              </subsystem>

       

      <stack name="tcp">

                          <transport socket-binding="jgroups-tcp" type="TCP"/>

                          <protocol type="TCPPING">

                              <property name="initial_hosts">

                              ip1[7600],ip2[7600],Ip3[7600]</property>

                              <property name=port_range">

                                  0

                              </property>

                          </protocol>

                          <protocol type="MERGE3"/>

                          <protocol socket-binding="jgroups-tcp-fd" type="FD_SOCK"/>

                          <protocol type="FD"/>

                          <protocol type="VERIFY_SUSPECT"/>

                          <protocol type="pbcast.NAKACK2"/>

                          <protocol type="UNICAST3"/>

                          <protocol type="pbcast.STABLE"/>

                          <protocol type="pbcast.GMS">

                              <property name="join_timeout">

                                  5000

                              </property>

                          </protocol>

                          <protocol type="MFC"/>

                          <protocol type="FRAG2"/>

                          <protocol type="RSVP"/>

                      </stack>

      .

      .

      .

      <subsystem xmlns="urn:jboss:domain:infinispan:3.0">

                  <cache-container aliases="singleton cluster" default-cache="default" module="org.wildfly.clustering.server" name="server">

                      <transport lock-timeout="120000"/>

                      <replicated-cache mode="ASYNC" name="default">

                          <state-transfer enabled="true" timeout="300000"/>

                          <transaction locking="OPTIMISTIC" mode="BATCH"/>

                      </replicated-cache>

                  </cache-container>

                  <cache-container default-cache="session" module="org.wildfly.clustering.web.infinispan" name="web">

                      <transport lock-timeout="120000"/>

                      <replicated-cache mode="ASYNC" name="session">

                          <state-transfer enabled="true" timeout="300000"/>

                          <locking isolation="READ_COMMITTED"/>

                          <transaction locking="OPTIMISTIC" mode="BATCH"/>

                      </replicated-cache>

                  </cache-container>

      </subsystem>

       

      <socket-binding-group default-interface="public" name="standard-sockets" port-offset="${jboss.socket.binding.port-offset:0}">

              <socket-binding interface="management" name="management-http" port="${jboss.management.http.port:9990}"/>

              <socket-binding interface="management" name="management-https" port="${jboss.management.https.port:9993}"/>

              <socket-binding name="http" port="${jboss.http.port:8080}"/>

              <socket-binding name="https" port="${jboss.https.port:8443}"/>

              <socket-binding interface="jgroup-tcp-interface" name="jgroups-tcp" port="7600"/>

              <socket-binding interface="jgroup-tcp-interface" name="jgroups-tcp-fd" port="57600"/>

          </socket-binding-group>