2012-04-18 18 views
1

私はMySQL、Grails、Javaと戦っています。mysqlプロセス間の優先順位を設定する

  1. Grailsアプリを実行しているアプリサーバーがあります。
  2. 私はmysql dbを持つ別のサーバを持っています。
  3. 私はcsvファイルでデータをエクスポートするためにサーバーに接続する1つのJavaアプリケーションを持っています。

私は、DBに多くのデータ(10万のレジスタ)があり、15分ごとにGrailsアプリケーションがDBに接続して新しい情報をチェックして保存します。正常に機能する方法。

私の問題は、grailsアプリケーションが動作している間、私はdb内の情報の一部をエクスポートするJavaアプリケーションを実行したいということです。しかし、私の問題は、プロセスが遅いが、時にはだけであるということです。私が説明します:

  1. Grailsのアプリケーションが動作している場合は、私のJavaアプリは、すべてのdata.TheのJava proccessは、CPUの周りに0.3から0パーセントを取るエクスポートするには約4日間必要です。

  2. Tomcatを無効にした場合、DBへのすべての接続(mySQLでのshow processlistコマンド)に約40分かかります。 すべてのプロセスを終了します。 Javaの処理には CPUの約85%が必要です。

私は問題が何であるかわからないんだけど、私はすべてを試みたが、私の問題は、私はGrailsのは、私がエクスポートするすべての時間をアプリ止めることができないということです。このため、Javaアプリケーションの優先順位を最優先にするために、プロセス間に優先順位を付ける方法がいくつかあります。

事前にお返事ありがとうございます。

+0

TomcatとGrailsが動作しているとき、あなたのJavaベースのレポート作成プログラムにはCPU時間が4日間かかりません。そして、それ自体(TomcatもGrailsもない)すべてを実行しているとき、CPU時間85%で40分間実行されますか? –

+0

はい、多かれ少なめです。私のJavaアプリケーションに加えて、DBへの接続が増えているように見えますが、すべてが本当に遅く、最も低い優先度を持っているように見えます。 –

+0

DBはInnoDBです。 –

答えて

3

これはデータベースロックの問題のようです。 innotopのようなツールを入手し、データベースで何が起きているのかを詳しく見てみることをお勧めします。特に、grailsアプリケーションの実行中に開いているテーブル、ロック、およびクエリを注意深く見ていきます。

+0

真の@ataylorのようなものです。しかし、私の問題は、正常にgrailsアプリが毎分15分間の定期的な作業をしていることです。しかし、もう一度、何もしていないが、遅いパフォーマンスはとにかく続く。 –

関連する問題