apache - maxpostsize - Tomcat-Configuración de maxThreads y acceptCount en el conector Http
tomcat sslenabledprotocols (3)
Tenga en cuenta que el conector HTTP es para solicitudes HTTP entrantes y no está relacionado con JDBC. Probablemente desee configurar el conjunto de conexiones JDBC por separado, como connectionProperties para el conector JDBC: http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
Actualmente tengo una aplicación implementada usando Tomcat que interactúa con una base de datos de Postgres a través de JDBC. Las consultas son muy caras, así que lo que estoy viendo es un tiempo de espera causado por Tomcat o Apache (Apache se sienta frente a Tomcat en mi configuración). Estoy tratando de limitar las conexiones a la base de datos a 20-30 conexiones simultáneas, para que la base de datos no se vea abrumada. Lo he hecho usando la configuración / .., estableciendo maxActive en 30 y maxIdle en 20. También aumenté el maxWait.
En este escenario, estoy limitando el uso de la base de datos, pero quiero que las conexiones / solicitudes se agrupen en Tomcat. Apache puede aceptar 250 solicitudes simultáneas. Por lo tanto, debo asegurarme de que Tomcat también pueda aceptar esta cantidad, pero manejarlos de manera adecuada.
Tomcat tiene dos configuraciones en el archivo de configuración del conector HTTP :
- maxThreads : "Número máximo de subprocesos de procesamiento de solicitudes creados por Http Connector, que por lo tanto determina el número máximo de solicitudes simultáneas que pueden manejarse".
- acceptCount - "La longitud máxima de la cola para las solicitudes de conexión entrantes cuando todos los posibles hilos de procesamiento de solicitud están en uso. Cualquier solicitud recibida cuando la cola está llena será rechazada".
Así que supongo que si configuro maxThreads para el número máximo de conexiones JDBC (30), entonces puedo configurar acceptCount en 250-30 = 220.
No entiendo muy bien la diferencia entre un hilo que ESPERA una conexión JDBC para abrir desde el grupo, frente a un hilo que está en cola ... Mi idea es que un hilo en cola consume menos ciclos que un hilo en ejecución, esperando en el grupo JDBC, ¿pasará ciclos revisando el grupo para obtener un hilo libre ...?
A menos que su aplicación maneje la solicitud en un asunto donde se conecta directamente a la base de datos por conexión HTTP, entonces debe configurar su grupo de conexiones JDBC en función de lo que su software de base de datos está configurado / puede manejar y sus maxthreads a lo que su aplicación / el hardware puede manejar.
Mantener el valor maxActive (del pool de conexiones db) menor que maxThreads (es decir, el número de subprocesos concurrentes) tiene sentido en la mayoría de los casos. Puede establecer acceptCount a un valor más alto según el tráfico que espera en su sitio web y la rapidez con la que se puede procesar.