You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:编写REXX程序找出LPAR上DA面板中CPU使用率最高的任务

获取SDSF DA面板中CPU使用率最高任务的REXX实现

要筛选出LPAR上DA面板中CPU使用率最高的任务,你需要在遍历行时跟踪当前最高的CPU值并记录对应任务信息。以下是修改后的完整代码及关键说明:

修改后的代码

/* rexx */                                             
RC=ISFCALLS('ON')                                      
isfcols = "JNAME CPUPR JTYPE"                          
       /*Access the DA panel */                         
ADDRESS SDSF "ISFEXEC DA"                              
IF RC<>0 THEN                                          
  EXIT RC                                              
     /* GET FIXED FIELD NAME FROM FIRST WORD */        
     /*OF ISFCOLS SPECIAL VARIABLE           */        
fixedField = word(isfcols,1)                           
Say "Number of rows returned:" isfrows                 
       /* Initialize variables to track max CPU job */
max_cpu = 0
max_job_details = ""
       /* Process all rows */                          
do ix=1 to isfrows                                     
  /* Extract current job's data */
  current_jname = value("JNAME."||ix)
  current_cpupr = value("CPUPR."||ix)
  current_jtype = value("JTYPE."||ix)
  
  /* Convert CPUPR to numeric value (remove % symbol if present) */
  current_cpu_val = number(translate(current_cpupr,,'%'))
  
  /* Update max CPU tracking if current job has higher usage */
  if current_cpu_val > max_cpu then do
    max_cpu = current_cpu_val
    max_job_details = "Job Name: "||current_jname||", CPU Usage: "||current_cpupr||", Job Type: "||current_jtype
  end
  
  /* Keep original row processing (optional, can remove if not needed) */
  Say "Now processing job:" current_jname     
  do jx=1 to words(isfcols)                                
    col = word(isfcols,jx)                                 
    say " Column" col"."ix "has the value:" value(col"."ix)
  end                                                      
end                                                       
/* Display the final result */
say "======================================================"
say "Highest CPU Usage Job:"
if max_job_details <> "" then
  say max_job_details
else
  say "No valid CPU usage data found"
rc=isfcalls('OFF')

关键修改说明

  1. 初始化跟踪变量:在遍历前定义max_cpu(初始为0)和max_job_details(初始为空),分别用于存储当前最高CPU数值和对应的任务信息。
  2. 提取并转换CPU值:
    • 提取当前行的CPUPR值后,用translate(current_cpupr,,'%')去掉百分号(SDSF中CPUPR通常带%符号)。
    • 用number()函数将处理后的字符串转为数字,确保数值比较的准确性(避免字符串排序导致的错误,比如"10%"字符串小于"9%")。
  3. 更新最高CPU记录:每次遍历行时,比较当前CPU数值与max_cpu,若当前值更大,则更新max_cpu和max_job_details。
  4. 输出最终结果:遍历完成后,打印出记录的最高CPU使用率任务信息。

额外注意事项

  • 若你的环境中DA面板的CPU使用率字段名不是CPUPR,需调整isfcols中的字段名称为对应有效值。
  • 如果存在多个任务CPU使用率相同且均为最高值,上述代码仅会记录最后一个遍历到的任务。若需保留所有最高CPU任务,可改用数组存储任务信息。

内容的提问来源于stack exchange,提问作者Dandy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 12:21:00