web-dev-qa-db-ja.com

Cassandra EC2の応答時間が遅い

私はしばらくの間ローカルでCassandraを使用して開発しており、クエリの応答時間は50ミリ秒の範囲です。

cassandraコミュニティAMIから5ノードEC2クラスターをセットアップしました。すべて正常に動作し、opscenterが稼働しており、問題はありません。

キースペースを作成する場合でも、空のテーブルでselect *を実行する場合でも、awsネットワークの外部のマシンからクエリを実行すると、応答時間は20秒を超えます。

同じリージョンのマシンからクエリを実行すると、応答時間は1〜2秒ですが、それでも非常に遅いです。

EC2マシンはすべてm1.largeeu-west-1aです

なぜこれが起こるのか、または問題を見つけるためにどこを探すべきかについて何か考えがありますか?

3
felbus

DevCenterの現在のバージョンは、(長い)CQLスクリプトを実行するメインシナリオとしてサポートするように設計されています(クエリが次々に実行されるインタラクティブコンソールに対して)。 DevCenterは、基盤となるコネクターとして、Cassandra用のDataStax Javaドライバーを使用しています。

上記のシナリオでは、「競合」が発生しないようにするために、実行ごとに新しいセッションが作成されます。セッションが初期化されると、ドライバーは自動ノード検出を実行し、接続プールを作成します。基本的には、多くの準備作業を行います。クライアントマシンからEC2ノードまでのレイテンシー、クラスターのサイズ、およびこれらのノードの構成(接続要件を参照)によっては、この初期化フェーズは非常にコストがかかる可能性があります。

ご想像のとおり、準備に費やした時間は、DDLスクリプトの実行の大部分と、適切なサイズの挿入/更新を表すものではありません。ただし、インタラクティブなシナリオの場合、最適ではない動作(説明している動作)になります。

DevCenterの次のバージョンでは、インタラクティブシナリオに対応し、それを最適化して、ユーザーエクスペリエンスが期待どおりになるようにします。そして、このシナリオをサポートすることは、優先順位のリストでかなり高いです。

取得元: https://stackoverflow.com/questions/21219300/cassandra-native-transport-port-9042-slow-on-ec2-machine/21224540#2122454

2
felbus