#java #spring #postgresql #hibernate
#java #весна #postgresql #спящий режим
Вопрос:
Привет, я протестировал свое приложение spring-hibernate с помощью Jmeter для тестирования производительности приложения.Итак, я использовал максимальный поток из 1000 подключений к приложению через вызов веб-служб restful. Но когда я запускаю приложение, я показываю ошибку слишком много соединений.Как мне преодолеть эту проблему. Я прочитал, что HIKARICP является альтернативой, и это быстро. должен ли я перейти на hikaricp?
конфигурация источника данных
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:jboss/datasources/DFSAppDS</value>
</property>
</bean>
отображение jndi в standalone.xml файл
<datasource jndi-name="java:jboss/datasources/DFSAppDS" pool-name="DFSAppDSPool">
<connection-url>jdbc:postgresql://localhost:5432/dfs</connection-url>
<driver>postgresql</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<min-pool-size>10</min-pool-size>
<max-pool-size>2000</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>postgres</user-name>
<password>password</password>
</security>
<statement>
<prepared-statement-cache-size>32</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
Комментарии:
1. » Как мне преодолеть эту проблему » — путем уменьшения значения для
max-pool-size
до разумного значения. 2000 — это путь , слишком много. Почему вы думаете, что вам нужно так много? На действительно быстром оборудовании высокого класса вы могли бы увеличить до 500. Значение от 50 до 100 намного более разумно.2. я думал, что увеличение максимального значения соединения решит мою проблему. Но я был неправ.
3. Увеличение
max_connections
по крайней мере до 2003 года избавит от симптома (после перезапуска базы данных), но проблему лучше решить путем уменьшенияmax-pool-size
.4. Теперь я изменил на min 50 и max 1000, так будет ли он обрабатывать 1000 за раз?