Estoy usando hibernate 3.2.2 en mi aplicación. Para la agrupación de conexiones, estamos usando c3p0 0.9.1. Estoy usando el patrón genérico DAO y la sesión abierta en el patrón de vista para hacer la operación de la base de datos.
Estamos trabajando en un nuevo sitio web del sitio web existente. En este momento, el número de visitas es de medio millón de páginas visitadas en la aplicación existente. Estoy confundido con la configuración de c3p0. En qué punto de referencia, decido que se abra el no de conexión. max-connection, min-connection, idletime, timeout, etc. ...¿Cómo decido el número de conexiones requeridas en la agrupación de conexiones?
Respuesta
Primero debe determinar qué hará el grupo si entra una solicitud y no hay conexión gratuita para atenderlo. ¿Lanza una excepción? ¿Regresar nulo? ¿Bloquear hasta que se devuelva otra conexión al grupo?
Una vez que sepa lo que sucederá cuando se exceda la capacidad, piense cómo podría tratar esto en el código de llamada, y en qué situaciones es aceptable que esto suceda. En algún momento, a medida que aumente el número de conexiones, tendrá que comenzar a rechazar el envío de algunas solicitudes, pero solo usted puede decidir cuál es ese punto. El punto real depende de muchos factores, incluyendo cosas tales como
- su inactividad actual y las tasas de solicitudes de ocupado
- la volatilidad de estas tasas (quieres más "espacio para respirar" si las tasas de saltar alrededor de un lote
- cualesquiera proyecciones futuras de aumento de capacidad en comparación con las mejoras de hardware y tiempo del desarrollador presupuestado para revisar este código (si planea actualizarlo en un par de meses, necesita menos sobrecarga que si estuviera destinado a seguir funcionando un par de años)
- cualquier garantía que su empresa tenga sobre la capacidad de procesamiento
- la capacidad de los clientes para comprender las solicitudes "intentar de nuevo más tarde", p. si sabes que es un script automatizado en el otro extremo que duerme durante un minuto en un 503 e intenta de nuevo, es mejor que un humano recibiendo un mensaje de "capacidad temporalmente excedida" y ambos son mucho mejores que un script por lotes que obtiene un 200 respuesta y simplemente se cierra con un error.
- la urgencia de las solicitudes: algunas solicitudes (mirar fotos de gatitos) pueden demorarse razonablemente, pero otras (órdenes de compra de acciones) pueden ser muy sensibles al tiempo.
Y así sucesivamente.
suerte de lo anterior que debe ser capaz de llegar a la cantidad de solicitudes que necesita para ser capaz de procesar simultáneamente (y si hay diferentes tipos de la solicitud, puede que tenga que tomar esto en preocupación también) . Luego, solo se trata de observar cómo las solicitudes entrantes adquieren y usan conexiones, razonamientos y perfiles hasta que descubra la cantidad de conexiones en el conjunto que se requiere para mantener su tasa de conexiones objetivo.
No olvide tener en cuenta cosas como subprocesos no solicitados (por ejemplo, grupos de trabajadores) obtener sus propias conexiones del mismo grupo (el grupo debe ser más grande), así como las solicitudes que solo tienen una conexión para una parte de su ejecución (pool puede ser más pequeño).
Perfile sus instancias de prueba, realice pequeños cambios de configuración y finalmente verifique con la prueba de carga.
- 1. hibernación agrupación de conexiones
- 2. Número óptimo de conexiones en el grupo de conexiones
- 3. agrupación de conexiones en PHP
- 4. agrupación de conexiones en Netty
- 5. ¿Cómo configuro la agrupación de conexiones DBX en el código?
- 6. La agrupación de conexiones JDBC utilizando C3P0
- 7. ¿Qué es realmente la agrupación de conexiones?
- 8. ¿Estoy utilizando la agrupación de conexiones JDBC?
- 9. agrupación de conexiones de php mysql
- 10. agrupación de conexiones HTTP utilizando HttpClient
- 11. mongodb y php: agrupación de conexiones
- 12. agrupación de conexiones Tomcat y JDBC
- 13. Cómo agrupación de conexiones memcached en Java (spymemcached)
- 14. OpenSSL configure el número máximo de conexiones
- 15. agrupación de conexiones de base de datos en ruby
- 16. MySQL - Conexión persistente frente a la agrupación de conexiones
- 17. ¿Por qué tantas sp_resetconnections para la agrupación de conexiones C#?
- 18. ¿Cómo verificar el número de conexiones abiertas en node.js?
- 19. ADO.Net Tamaño máximo de la agrupación de la agrupación de conexiones alcanzado
- 20. Número de conexiones de red posibles
- 21. Faltan conexiones en el conjunto de conexiones tomcat jdbc
- 22. .NET Clase SqlConnection, agrupación de conexiones y lógica de reconexión
- 23. SQL agrupación de conexiones y Auditoría de Conexión/Desconexión
- 24. Conjuntos de conexiones JMS o agrupación de sesiones
- 25. primavera de agrupación de conexiones JDBC mejores prácticas
- 26. Supervisión de conexiones usadas en mysql para depurar 'demasiadas conexiones'
- 27. Tamaño de la agrupación de conexiones de la aplicación Rails, evitando problemas de tamaño máximo de la agrupación
- 28. ¿Cómo limito el número de conexiones que Jetty aceptará?
- 29. Aumento MongoDB número máximo de conexiones
- 30. Cuántas conexiones están disponibles en el grupo de conexiones ADO.NET
5 laks = 500,000, ¿sí? –
sí. gracias ... lo cambio a medio millón. – Shashi
Hola Shashi. Es posible que desee echar un vistazo a http://stackoverflow.com/questions/1208077/optimal-number-of-connections-in-connectionpool. –