1

ODBC および DB2 Connect を介して V5R4 の iSeries LPAR に接続する .Net アプリが混在しています。また、マシン上でネイティブに実行されるバッチ ジョブもいくつかあります (主に COBOL、RPG、およびストレート CL)。1 日の特定の時間帯にページ フォールトが頻繁に発生するため、どのアプリが問題の原因であるかを特定しようとしています。

市場に出回っている数十の高価なツール (iDoctor など) を購入せずに、各ジョブが消費するメモリの量を確認する方法はありますか。私たちのジョブのほとんどはプール 2 を使い果たしています。そのプールにメモリを追加するとパフォーマンスが向上し、wrksyssts を見るだけではあまり役に立ちません。問題のあるジョブを特定し、パフォーマンスを向上させ、不要なメモリ使用量を削減するために何らかの変更を加えることができるかどうかを確認したいと考えています。

4

2 に答える 2

3

Javaやそのjvm、または少しのコーディングを気にしない場合...

以下を入手してください (すべて Windows、Linux、AIX、Solaris などで使用できます... Mac?):

JTOpen は単純な古い Java ライブラリであるため、通常の Java ライブラリにアクセスできる任意の jvm 言語を使用できることに注意してください。私は Groovy を使用しています。心配しないでください。Groovy は便利です。

ここに行きます。

 import com.ibm.as400.access.*

 // how many seconds to run  
 secs = 20 

 sys = new AS400("theserver", "paulg", "dotnet4evah")   
 job = new Job(sys, "jobname", "jobusername", "jobnumber")

 job.load()
 println "Stats for ${job.toString()}"  
 // this might look horrible
 println "total CPU time\tpage faults/sec\tdisk IO ops/sec"
 while (secs--) {
   job.loadStatistics()
   print "${job.getCPUUsed()/1000}\t\t" 
   print "${job.getValue(Job.ELAPSED_PAGE_FAULTS)}\t\t"
   println "${job.getValue(Job.ELAPSED_DISK_IO)}"
   job.resetStatistics()
   Thread.sleep(1000)
 }

 sys.disconnectAllServices()

それでおしまい。他にも多くの仕事の価値があります。これらのジョブ統計を気にする必要がなかったので、統計をリセットすることが正しいことかどうかわかりません。

Job オブジェクトを作成するために、実際にジョブ番号やジョブに関するその他の詳細を知るのは面倒です。それが、JobListがとても優れている理由です。必要に応じて、スクリプトからCL コマンドを実行することもできます。

IBM はこのライブラリーを使用して Ops Navigator を構築していると思います。

于 2009-04-28T17:14:03.770 に答える
0

これは少し役立つようです:

--iSeriesナビゲーターで、「接続」>「接続」>「作業管理」>「メモリー・プール」>「アクティブ・プール」または「共有プール」を展開します。-使用するメモリプールを右クリックし、[ジョブ]をクリックします。-ビューをカスタマイズして[ページフォールト]列を含める

少なくとも、どのジョブに障害の問題があるかはわかります。次回問題が発生したときに、問題のあるアプリを見つけるのに役立つかどうかを確認します。

于 2009-01-15T14:41:24.627 に答える