【问题标题】:Is there any way to determine an individual jobs memory consumption on the iSeries?有没有办法确定 iSeries 上的单个作业内存消耗?
【发布时间】:2009-01-15 14:19:45
【问题描述】:

我们混合了 .Net 应用程序,它们通过 ODBC 和 DB2 Connect 连接到 V5R4 的 iSeries LPAR。我们还有一些在机器上本地运行的批处理作业(主要是 COBOL、RPG 和直接 CL)。在一天中的某些时段,我们会遇到大量页面错误,并正在尝试确定哪些应用可能会导致问题。

在不购买市场上数十种昂贵工具(即 iDoctor)的情况下,有没有办法查看每个作业消耗的内存量。我们的大多数作业都用完了池 2,当我们向该池添加内存时,我们确实看到性能有所提高,而仅仅查看 wrksyssts 并没有多大帮助。我们想隔离有问题的作业,看看是否可以进行一些修改以提高性能并减少不必要的内存使用。

【问题讨论】:

  • 一般来说,如果您需要进行有效的性能监控(尤其是在预算范围内),基本上没有作业应该在系统池 2 中运行。系统池 2 是 *BASE,*BASE 中的内存不应被活动作业使用。 (这包括默认在 *BASE 中运行的所有 IBM 提供的服务器作业等。)系统内存管理的基本原则是“添加到共享池的所有内存始终取自 *BASE,所有从共享池释放的内存总是返回到 *BASE。”如果你想“在预算内”做这件事,那么计划和工作甚至比有用的指标更重要。

标签: performance memory ibm-midrange


【解决方案1】:

如果你不介意 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()

就是这样。 play with 还有许多其他工作价值。我从来不用担心这些工作统计数据,所以我不知道重置统计数据是否正确。

为了创建 Job 对象,实际知道作业编号和有关作业的其他详细信息是一件很痛苦的事情。这就是为什么JobList 这么好。如果有用的话,你也可以在你的脚本中run CL commands

我认为 IBM 使用这个库来构建 Ops Navigator,所以也许您已经使用它一段时间了。

【讨论】:

    【解决方案2】:

    这似乎有点帮助:

    -- 在 iSeries Navigator 中,展开我的连接 > 连接 > 工作管理 > 内存池 > 活动池或共享池。 -- 右键单击​​要使用的内存池,然后单击作业。 -- 自定义视图以包含 Page Faults 列

    至少我可以看到哪些工作存在错误问题。下次出现问题时,我们会看看它是否有助于找到有问题的应用程序。

    【讨论】:

      猜你喜欢
      • 2018-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多