MSDNのドキュメントによると、ページ読み取り/秒は、システムの問題がメモリ不足であるかどうか、またはコーディングの問題/メモリリークであるかどうかに対処するための良い方法です。
私は他の人からのアドバイスと、詳細を知るための道を進む方法を探しています。
私は自分のマシンで次のものを実行しています(Windows 7.64ビット。4GBRAM)
1. InteliJ 10 (Tomcat for my Web Services & JSP for the front end)
2. Oracle 11g
問題がどこにあるのかを特定しようとしています。そこで、JMeterでスクリプトを作成して、システムを少し調整してデータを作成し、システムでデータを検索しました。
パフォーマンスモニターを10分間実行すると、データは次のようになります。
Page Reads/Sec (Average): 26.841
Pages Input/Pages Fault = Hard Fault % = 5%
Pages Fault/sec (Avg) = 2300
MSDNによると、5ページ読み取り/秒を超える持続値は、多くの場合、メモリ不足の強力な指標ですが、これは持続値であり、平均ではありません。それは数回スパイクしますが、長い間、0から3の間で、いくつかのスパイクが非常に大きくなるようです。
メモリリークが問題になるのではないかと思いました。ただし、コードを調べてストリームが閉じていることを確認した後(ファイル/入力/ DB接続など)、よくわかりません。
このデータは、メモリの不足、サービスのメモリリーク、または構成の問題を示していますか?
編集1:ヒープを見る
現在、アクセスできるのは開発システムのみで、本番システムにはアクセスできません。ログにアクセスしてシステムでjvisualVMを使用するには、他の誰かと調整する必要があります。
ただし、先週と今日、開発システムでいくつかのヒープダンプを取得しました。String&char []を除いて、クラスの使用法に夢中になることはありません。モニターを見ると、開発中の私のヒープサイズは463,863で、最大値は約480です。使用されるフラックスは415から450の間です。
Eclipse Memory Analyzerとヒープダンプの「リークの疑いのあるレポート」を使用すると、3つの問題の疑いがあることがわかります。
1. One instanceo f "org.apache.jasper.servlet.JspServlet" loaded by "org.apache.catalina.loader.StandardClassLoader" Occupies 18.70% The memory is accumulated in one instance of "java.util.concurrent.ConcurrentHashMap$Segment[]
2. The thread org.apache.tomcat.util.threads.TaskThread @ http-apr-8080-exec-19 keeps local variables with total size 12.30%. The memory is accumulated in one instance of "org.apache.tomcat.util.threads.TaskThread" loaded by "org.apache.catalina.loader.StandardClassLoader"
3. The thread org.apache.tomcat.util.threads.TaskThread @http-apr-8080-exec-24 keeps local variables with total size 10.72%. The m emory is accumulated in one instance of "org.apache.tomcat.util.threads.TaskThread' loaded by "org.apache.catalina.loader.StandardClassLoader"
TomCatは最初に多くのものをロードして保存するので、これは正常であるという印象を受けました(間違っている可能性があります)。