我们的 Web 应用程序处于开发模式,我已经看到了模式复制。即 MySQl 程序的运行时间随着请求的数量线性增加。
我们的数据库非常小(~500mb)。在打开一页时,并行调用 3 个过程(只读取,不写入)。在正常运行中,我观察0.5 sec
到运行一个过程需要大约 10 分钟。但有趣的是,当 3 个用户打开页面时:处理大约需要 3 秒(即调用 9 个程序)。
对于 5 个用户(即 15 个程序)大约 11 秒
对于 10 个用户(即 30 个程序)大约 20 秒
而对于更多的用户,它甚至增加到 40+。之后,即使我尝试从 mysql workbench 左右连接我的数据库,它也不会连接,直到我重新启动它。程序都是只读的。
我从Spring JDBC
. 我的config.xml
:
//DBCP connection pool settings.
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" p:initialSize="20" p:maxActive="-1" p:minIdle="5"
p:maxIdle="35" p:driverClassName="com.mysql.jdbc.Driver"
p:url="jdbc:mysql://10.0.1.100/warehouse?useUnicode=true&"
p:username="user" p:password="123" p:testOnBorrow="true"
p:validationQuery="SELECT 1" />
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
问题:它与配置 MySQL 有关吗?还是我的 DBCP 连接池?还有什么可能是该行为的原因?