Tìm kiếm lời khuyên - Tôi đã đọc hai chủ đề khác về điều này
trong tệp server.xml của tôi, tôi có hai vị trí trong đó maxThreads được xác định ở hai vị trí:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="100" minSpareThreads="4"/>
VÀ
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="100" SSLEnabled="true" scheme="https" secure="true" connectionTimeout="600000" keystoreFile="/usr/local/tomcat/conf/keystore.p12" keystorePass="mypassword" clientAuth="false" sslProtocol="TLS" />
Lỗi chúng tôi thường xuyên gặp phải với máy chủ của mình là:
"Hết giờ: Nhóm trống. Không thể tìm nạp kết nối sau 30 giây, không có kết nối nào [size:100;busy:100;idle:0;lastwait:30000]"
trước khi hệ thống bị tắt nghiêm trọng (máy đặt lại và khởi động lại - trên cụm AWS ECS)
Khi tôi tăng giá trị maxThreads lên 300 trong trường hợp thứ hai được liệt kê ở đây, chúng tôi nhận được thông báo lỗi tương tự - vì vậy tôi không chắc liệu kích thước kết nối có tăng lên hay không. Hành vi của hệ thống khác (máy không khởi động lại) nhưng sau đó người dùng không thể kết nối - cuối cùng nó cần khởi động lại thủ công.
Làm cách nào tôi có thể đạt được nhiều kết nối hơn với hệ thống hoặc giữ kết nối ở mức cao nhất có thể?
Trong các bài đăng khác về chủ đề này, một số đề xuất cũng giảm maxThreads (giả sử chúng hoàn thành nhanh chóng) có thể mang lại hiệu suất tốt hơn.
CẬP NHẬT:
trong tệp thuộc tính ứng dụng của tôi, tôi có các cài đặt sau:
spring.datasource.url=jdbc:postgresql://db####
spring.datasource.username=#####
spring.datasource.password=######
spring.datasource.tomcat.max-wait=10000
spring.datasource.tomcat.max-active=60
spring.datasource.tomcat.test-on-borrow=true
spring.jpa.show-sql=false
#spring.jpa.hibernate.ddl-auto=create-drop
#spring.jpa.hibernate.ddl-auto=validate
spring.jpa.properties.hibernate.show_sql=false
spring.jpa.hibernate.naming-strategy=org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.connection.provider_class=org.hibernate.c3p0.internal.C3P0ConnectionProvider
spring.jpa.properties.hibernate.c3p0.min_size=1
spring.jpa.properties.hibernate.c3p0.max_size=30
spring.jpa.properties.hibernate.c3p0.timeout=120
spring.jpa.properties.hibernate.c3p0.max_statements=20