tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Андрей Беликов <pion...@mail.ru>
Subject Tomcat+SOLR, acceptCount not working
Date Wed, 14 Mar 2012 18:17:45 GMT
Hi... I am running Apache Tomcat Version 7.0.26 with SOLR 3.5 on jdk1.7.0_03
The problem is that i cannot limit count of connections. I never get connection refused (only
timeouts). For example: maxThreads="150" and acceptCount="100", as i think i will have 150+100=250
connections in ESTABLISHED state, and all others will be refused. 

But in realy:
#netstat -na | grep 8080 | awk '{print $6}' | sort | uniq -c | sort -rn
   3899 FIN_WAIT2
   3385 ESTABLISHED
    243 TIME_WAIT
      9 CLOSE_WAIT
      3 FIN_WAIT1
      1 SYN_SENT
      1 LISTEN

Probe (http://localhost:8080/probe/connectors.htm) return me Connectors Count: 150

http://localhost:8080/probe/threadpools.htm
Threads count
Name            Current Busy    Max     Spare1  Spare2
"ajp-apr-8009"  0       0       4096    0       0
"http-apr-8080" 150     150     150     0       0
AJPThreadPool   0       0       4096    0       200
HTTPThreadPool  150     150     150     150     20

As I think: connections comes to some buffer (may be JVM) and slowly transferres to TOMCAT...
It is not good for my task, the best way is to recieve 250 connections and all other to refuse.
How I can do this?

my start options:

/production/jdk7/jre/bin/java -Djava.util.logging.config.file=/data/servers/solr_tomcat/conf/logging.properties
-XX:+CMSClassUnloadingEnabled -XX:MaxGCPauseMillis=3000 -XX:MaxGCMinorPauseMillis=3000 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Duser.timezone=UTC -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8161
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
-Djava.endorsed.dirs=/production/tomcat7/endorsed -classpath /production/tomcat7/bin/bootstrap.jar:/production/tomcat7/bin/tomcat-juli.jar
-Dcatalina.base=/data/servers/solr_tomcat -Dcatalina.home=/production/tomcat7 -Djava.io.tmpdir=/data/servers/solr_tomcat/temp
org.apache.catalina.startup.Bootstrap start

/data/servers/solr_tomcat/conf/server.xml:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html
-->
  <Listener className="org.apache.catalina.core.JasperListener" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

        <GlobalNamingResources>
                <Resource name="UserDatabase" auth="Container"
                        type="org.apache.catalina.UserDatabase"
                        description="User database that can be updated and saved"
                        factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                        pathname="conf/tomcat-users.xml" />
        </GlobalNamingResources>


        <Service name="Catalina">

                <Executor name="AJPThreadPool" namePrefix="AJPThread-"
                        maxThreads="4096"
                        minSpareThreads="150"/>

                <Executor name="HTTPThreadPool" namePrefix="HTTPThread-"
                        maxThreads="150"
                        minSpareThreads="20"/>

                <Connector executor="HTTPThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
redirectPort="8443" URIEncoding="UTF-8"
                        maxHttpHeaderSize="8388608"
                        maxThreads="150"
                        maxKeepAliveRequests="1"
                        enableLookups="false"
                        acceptCount="100"
                        connectionTimeout="3000" />
                <Context cacheMaxSize="40960" cacheTTL="60000"
                        cachingAllowed="true">
                </Context>

                <Connector executor="AJPThreadPool" port="8009" protocol="AJP/1.3" redirectPort="8443"
URIEncoding="UTF-8"
                        enableLookups="false"
                        acceptCount="100"
                        connectionTimeout="20000" />


                <Engine name="Catalina" defaultHost="localhost">

                        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

                        <Host name="localhost"  appBase="webapps"
                                unpackWARs="true" autoDeploy="true"
                                xmlValidation="false" xmlNamespaceAware="false">
                                <Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
                                        prefix="japp_access." suffix=".log"
                                        pattern="%{X-LB-Client-IP}i %l %u %t &quot;%r&quot;(%{Content-Length}i)
%s %b(%{Content-Length}o) %D"
                                        resolveHosts="false" rotatable="true" fileDateFormat="yyyy-MM-dd.HH"/>

                        </Host>
                </Engine>
        </Service>
</Server>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org

Mime
View raw message