Hi,
I am facing a big problem in our application. It uses a cluster of 3 brokers
configured with a network connector. We have a huge number of clients around
10000 connected to theses brokers. Each client opens 2 connections to send
and receive messages. We use a powerful machines running on Solaris 10 64
bits. The issue is well known: Too many open files
We checked the current number of open files in some cases and it is usually
around 58000 in some machines. Bellow, we provide information about tcp
parameters and open connections in Solaris.

                                          Broker1                               
Broker2                         Broker3
tcp_fin_wait_2_flush_interval   16000                           16000           
                16000
tcp_keepalive_interval                  15000                           15000   
                        15000
tcp_conn_req_max_q                              8192                            
8192                            8192
tcp_conn_req_max_q0                             8192                            
8192                        8192
tcp_time_wait_interval                  6000                            6000    
                        6000
Conexiones ESTABLISHED                  6188                            6791    
                        6178
Conexiones CLOSE_WAIT                   162                                     
51                                      20


As you can see, the number of connections in CLOSE_WAIT is low and I think
that the most influential tcp parameters have a reasonable value. Our
application also uses a cluster of Hazelcast  in-memory data grid although I
don’t think that it has to do with our issue. 

I am disconcerted with the huge number of open files and I don’t know how to
reduce it despite the adjustments we already did in broker configuration.

The clients that cannot connect to a given broker reattempt every 2 minutes.
client.uri =
failover:(ssl://broker1:61616?soTimeout=10000&wireFormat.maxInactivityDuration=600000,ssl://broker2:61616?soTimeout=10000&wireFormat.maxInactivityDuration=600000,ssl://broker3:61616?soTimeout=10000&wireFormat.maxInactivityDuration=600000)?jms.useCompression=true&jms.alwaysSyncSend=true&startupMaxReconnectAttempts=5&maxReconnectAttempts=5&randomize=true&timeout=4000

For broker1 for example:
1 queue and 1topic are used.
dedicatedTaskRunner = false
persistent = false
networkConnector.URI=
static:(tcp://${broker2}:61617?soTimeout=10000&soWriteTimeout=15000,tcp://${broker3}:61617?soTimeout=10000&soWriteTimeout=15000)
networkConnector.dynamicOnly                    =false
networkConnector.networkTTL                     =3
networkConnector.decreaseNetworkConsumerPriority =true;
networkConnector.suppressDuplicateQueueSubscriptions = true;
networkConnector.suppressDuplicateTopicSubscriptions = true;
networkConnector.staticBridge = true;

transportConnector.URI=
nio+ssl://${broker1}:61616?transport.soTimeout=10000&transport.soWriteTimeout=15000&wireFormat.maxInactivityDuration=600000&useQueueForAccept=false&transport.maximumConnections=10000&transport.closeAsync=false

Hope someone can help me to solver this problem, at least to know how to
reduce the number of open files.
Thank you



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Too-many-open-files-with-thousands-connections-in-Solaris-tp4695069.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to