Domanda

Abbiamo una combinazione di app .Net che si connettono tramite ODBC e DB2 Connect a una iSeries LPAR che è in V5R4. Abbiamo anche alcuni lavori batch eseguiti nativamente sulla macchina (principalmente COBOL, RPG e CL diritto). Durante alcuni periodi della giornata, si verificano errori di pagina elevata e stiamo cercando di determinare quali app potrebbero causare il problema.

Senza acquistare una delle dozzine di strumenti costosi sul mercato (cioè iDoctor), esiste un modo per vedere la quantità di memoria consumata da ciascun lavoro. La maggior parte dei nostri lavori sta esaurendo il pool 2 e notiamo prestazioni migliori quando aggiungiamo memoria a quel pool e semplicemente osservando wrksyssts non aiuta molto. Vorremmo isolare i lavori problematici e vedere se è possibile apportare alcune modifiche per migliorare le prestazioni e ridurre l'utilizzo della memoria non necessario.

È stato utile?

Soluzione

Se non ti dispiace Java o jvm o stai facendo un po 'di codice ...

Ottieni quanto segue (tutti disponibili per Windows, Linux, AIX, Solaris, ecc ... Mac?):

Tieni presente che JTOpen è semplicemente una vecchia libreria Java in modo da poter utilizzare qualsiasi linguaggio jvm che può accedere alle normali librerie Java. Sto usando Groovy perché ci sto provando qualcosa. Non preoccuparti, Groovy è simpatico.

Ecco qui.

 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()

Questo è tutto. Ci sono molti altri valori di lavoro in gioca con . Non ho mai dovuto preoccuparmi di queste statistiche di lavoro, quindi non so se ripristinare le statistiche sia la cosa giusta.

È difficile conoscere effettivamente il numero del lavoro e altri dettagli sul lavoro per creare l'oggetto Lavoro. Ecco perché JobList è così bello. Puoi anche esegui comandi CL dal tuo script se ciò è utile.

Penso che IBM usi questa libreria per creare Ops Navigator, quindi forse lo stai già usando da un po '.

Altri suggerimenti

Questo sembra aiutare un po ':

- In iSeries Navigator, espandi Collegamenti personali > connessione > Gestione del lavoro > Pool di memoria > Pool attivi o Pool condivisi. - Fare clic con il pulsante destro del mouse sul pool di memoria che si desidera utilizzare e fare clic su Lavori. - Personalizza la vista per includere la colonna Errori di pagina

Almeno posso vedere quali lavori presentano problemi di errore. La prossima volta che si presenta il problema, vedremo se aiuta a trovare le app offensive.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top