2

現在、Tomcat で実行されている Grails アプリケーションでパフォーマンスの問題が発生しています。単一ページの読み込み中、Java プロセスでかなり高い CPU 使用率 (約 20%) が見られ、これがうまくスケーリングできないのではないかと心配しています。

Java Melody と Grails Profiler プラグインの両方を見てきました。しかし、これらのツールは、私がすでに知っていること、つまりどのページの読み込みが他のページよりも遅いかを教えてくれるだけのようです。

また、MySQL への接続数も確認しましたが、クエリはかなり多いものの、ほぼ瞬時に実行されているようです。また、MySQL プロセスが意味のある CPU 時間を使用しているとしてトップに表示されることはないため、これが速度低下の原因であるとは考えていません。

私が知る必要があるのは、コード内のどのメソッドまたは関数が実行に最も時間がかかっているかということです。これにより、それらを評価して書き換え可能かどうかを確認できます。これまでのところ、ページの特定の部分を手動で無効にして読み込み時間をテストしてみました。しかし、問題のあるコードを特定するのに役立つツールがあれば、はるかに簡単になります。そのようなツールは存在しますか?

4

3 に答える 3

2

tc サーバーで SpringSource InSight をお勧めします

http://www.springsource.org/insight

于 2013-03-15T13:30:00.443 に答える
2

開発モードでパフォーマンス テストを行うべきではありません (プロダクション モードのパフォーマンスをテストする場合)。

本番用に使用する appserver コンテナー (Tomcat など) でパフォーマンス テストを行うことをお勧めします。

本当に簡単にパフォーマンス テストを行いたい場合は、「grails prod run-war」コマンドを使用して実行できます。その場合、Grails JVM パラメータを BuildConfig.groovy ファイルに追加する必要があります。

grails.tomcat.jvmArgs = ["-server", "-noverify", "-Xms512m", "-Xmx1024m", "-XX:PermSize=96m", "-XX:MaxPermSize=256m", "-Djava.net.preferIPv4Stack=true"]

このコマンドで Grails を本番モードで起動します

grails prod run-war
于 2013-03-20T04:37:49.737 に答える
1

Tomcat の grails アプリケーションでも同様の問題がありました。そこで、jetty に戻りました。jetty の方がうまくいくようです。

新しいゲイルのリリース情報によると、彼らはいくつかの tomcat の問題を修正したため、プロジェクトのアップグレードでも問題を解決できる可能性があります。

于 2013-03-15T12:12:34.980 に答える