2016-10-10 6 views
1

Cloud SQL gen2を使用しようとしていますが、しばしば接続を開くのにかなりの時間(1〜2秒)がかかります。私はD1 gen2インスタンスを持っています.SQLサーバ上のCPU負荷は7%未満で6未満です。実際のSQL呼び出しは、接続を開いた後にかなり高速です。前のgen1 D1のインスタンスはこれより速く見えました。 接続を高速に開く方法はありますか?これは、DriverManager.getConnection(dbUrl)呼び出しを使用して、appエンジン、javaからのものです。接続が非常に遅い

更新: は、より正確には、ヨーロッパ-west1におけるクラウドのSQL GEN2は、ヨーロッパ西部でのAppEngineのJavaからアクセス

アップデート: 私は今も2と4コアのDBサーバで試してみましたが、何も変更はありません接続開始時間(常にSSDを使用)では、1秒を超えることがあります。

更新:私はここでこれを見つけました: Why is Google Appengine so slow connecting to CloudSQLしかし、それは本当に助けにはなりません。

+0

私はこれも見ました:https://github.com/kennberg/appengine-java-connection-poolですが、公式のサンプルコードがそれをしないと、何らかの接続プーリングを行うのがちょっと変わっているようです。 – cputoaster

+0

また、このタイプの接続プーリングは、要求全体に対して1つの接続しか使用しないため、おそらく役に立ちません。 – cputoaster

+1

私の質問はなぜ投票されたのですか?私が言及できる何か他にありますか?私は12接続/インスタンス制限と250/SQL制限について読んだが、最大6つのオープン接続でサーバー上でこれは本当に問題ではありません。また、負荷が7%未満のD1には過負荷がかからないようです。 – cputoaster

答えて

1

github.com/kennberg/appengine-java-connection-poolを使用すると大きな違いがあります。接続を開くには1〜2秒かかりますが、ほとんどの場合、問題を管理しやすくする理由は実際には説明されていません。

1

同じ問題が発生しています。

さまざまな種類のアプリケーションエンジンインスタンスとクラウドSQLインスタンスで遊んだだけですが、接続を開く時間は常に400-600msの間です。 リクエスト(SELECTクエリ)自体が処理されます2-3 ms

この問題が発生しましたか?

+0

いいえ、私たちは問題自体を解決することができませんでした。しかし、あなたが私の答えを見れば、これでそれを緩和することができました。おそらくすべての場合にうまく機能しませんが。 – cputoaster

+0

さて、接続プール(github.com/kennberg/appengine-java-connection-pool)を使用して接続時間の問題を解決しますか? 60秒の最大ソケット時間はどうですか?その後、アプリケーションエンジンはオープンソケット接続を閉じます。 –

+1

何とかそうではないようです。(ログで)新しい接続が散発的にしか開始されないことがあります。 dbには毎秒1リクエスト以上が常に存在します。 – cputoaster