Ebeanを使用して重いデータベースアクセスを持つプレイ2.5プロジェクトをセットアップしました。私は= 100 maximumPoolSizeにhikaricpを設定し、minimumIdle = 100とhikaricpプール100接続に成功し、私はまた、このようにスレッドプールを設定:なぜプレイフレームワーク2.5が接続プール内のすべての接続を使用しないのですか
akka {
actor {
default-dispatcher {
executor = "thread-pool-executor"
throughput = 1
thread-pool-executor {
fixed-pool-size = 109 # db conn pool (100) + number of cores (8) + housekeeping (1)
}
}
}
}
私はCompletionStageを使用して非同期アクションを実装:
public CompletionStage<Result> asyncDb() {
CompletableFuture<Integer> future = new CompletableFuture<>().supplyAsync(() -> {
Ebean.createSqlQuery("select sleep(3)").findUnique();
return 0;
});
return future.thenApplyAsync(integer -> ok("done"));
}
私はシステムを実行します
ab -n 10000 -c 100 -r -k http://localhost:9000/asyncDb
問題は、プールと他のmysql接続からの7または8の接続のみを使用して再生することです。一方、要求がある間、アイドルアイドル、なぜですか?