0

私たちの Web アプリケーションは開発モードにあり、パターンの複製を見てきました。つまり、MySQl プロシージャの実行時間は、リクエスト数に比例して増加します。

私たちのデータベースはかなり小さいです (~500mb)。ページを開くと、3 つの手順が並行して呼び出されます (読み取りのみ、書き込みなし)。0.5 sec通常の実行では、プロシージャを実行するのに約時間がかかることがわかりました。しかし興味深いことに、3 人のユーザーがページを開くと、処理に約 3 秒かかります (つまり、9 つのプロシージャが呼び出されます)。

5 ユーザー (つまり 15 手順) の場合、約 11 秒

10 人のユーザー (つまり 30 の手順) の場合、約 20 秒

さらにユーザー数が増えると、40 人以上にまで増加します。その後、mysql ワークベンチなどからデータベースに接続しようとしても、再起動するまで接続しません。手順はすべて読み取り専用です。

から呼び出してい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&amp;"
    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接続プール?行動の理由は他に何が考えられますか?

4

1 に答える 1