Velocity Software, Inc. is recognized as a leader in the performance measurement of z/VM and Linux on z. The Velocity Performance Suite consist of a set of tools that enable installations running z/VM to manage Linux and z/VM performance. In addition, many components of server farms can be measured and analyzed. Performance data can be viewed real-time through the use of either 3270 or a browser. The CLOUD Implementation (zPRO) component is designed for full cloud PaaS implementation as well as to extend the capabilities of the z/VM sysprog (system programmer) to the browser world. This feature moves system management to the point-and-click crowd. Archived data and reports can be kept available of long term review and reporting usine zMAP. The zVPS, formally ESALPS, components consist of: zMON (formally ESAMON - real-time display of performance data), zTCP (formally ESATCP - SNMP data collection), zMAP (formally ESAMAP - historical reporting and archiving), zVWS (formally ESAWEB - z/VM based web server), zTUNE (a subscription service), zVIEW (formally SHOWCASE - web based viewing of performance data), zPRO (new to the quality line of Velocity Software Products). Velocity continues to work with other software vendors to ensure smooth interface with or from other products such as VM:Webgateway, CA-Webgateway, EnterpriseWeb, MXG, MICS. Velocity software remains the leader and inovator in the z/VM performance, Linux performance, Managing cloud computing arenas.
Home | Contact Us    
About Us | Products | FAQ | zVIEW Demo | zPRO Demo | Customer Area | Education | Presentations | News | Industry and Events | Employment Opportunities
/**********************************************************************/ /* */ /* Name: VELUVM */ /* */ /* Status: Performance Reporter 1.1.0 */ /* */ /* Function: */ /* Define Update of table VMPRF_CONFIG_T from record VELRVSYS */ /* Define Update of table VMPRF_PROCESSOR_H from record VELRVCPU */ /* Define Update of table VMPRF_SYSTEM_H from record VELRVCPU */ /* Define Update of table VMPRF_SYSTEM_H from record VELRVSYS */ /* Define Update of table VMPRF_USER_H from record VELRVUSR */ /* Define Update of VMPRF_DASD_H from record VELRVDEV */ /* */ /* Change activity: */ /* 00 1999-04-07 SB Created */ /* */ /**********************************************************************/ /**********************************************************************/ /* Define Update of table VMPRF_CONFIG_T */ /**********************************************************************/ DROP UPDATE VELVM_VSYS_CONF_T; DEFINE UPDATE VELVM_VSYS_CONF_T VERSION 'IBM.110' FROM VELRVSYS TO &PREFIX.VMPRF_CONFIG_T LET (SYSTEM_ID = VALUE(:SYSTEM_ID,'$UNKNOWN'), YEAR = CASE WHEN SUBSTR(DATE,1,2) > '50' THEN '19' ELSE '20' END, W_DATE = CASE WHEN (SUBSTR(DATE,7,2) = ' ' OR LENGTH(DATE) = 6) THEN DATE(YEAR 33 SUBSTR(DATE,1,2) 33 '-' 33 SUBSTR(DATE,3,2) 33 '-' 33 SUBSTR(DATE,5,2)) ELSE DATE( SUBSTR(DATE,1,4) 33 '-' 33 SUBSTR(DATE,5,2) 33 '-' 33 SUBSTR(DATE,7,2)) END, W_TSSTART = TIMESTAMP(W_DATE, STARTIME), W_TSSTOP = TIMESTAMP(W_DATE, STOPTIME), W_ETIME = INTERVAL(W_TSSTART, W_TSSTOP)) GROUP BY (DATE = W_DATE, TIME = TIME(ROUND(STARTIME, 1 HOUR)), VM_SYSTEM_ID = SYSTEM_ID) --FROM SET COMMAND SET (CPU_ID = FIRST(SERIAL), VM_VERSION = FIRST(SUBSTR(HCPCPEID,3,2)), VM_RELEASE = FIRST(SUBSTR(HCPCPEID,1,2)), VM_SERVICE_LEVEL = FIRST(SUBSTR(HCPCPEID,5,4)), LAST_ABEND_CODE = FIRST(SYSABNCD), TIME_OF_LAST_IPL = FIRST(SYSTODST), TIME_OF_LAST_TERM = FIRST(SYSTERM), STORAGE_REAL = FIRST(RSASTORE), STORAGE_SYSGEN = FIRST(SYSTORS), VR_SIZE = FIRST(SYSVRSZ2), VR_FREE = FIRST(SYSVRFRE), FRAMES_PAGEABLE = FIRST(RSAPGAB2), FRAMES_NONPAGEABLE = FIRST(RSANONP2), FRAMES_OFFLINE = FIRST(RSAOFFLN), ESTOR_INSTALLED = FIRST(SYSXTSIZ)); /**********************************************************************/ /* Define Update for table VMPRF_PROCESSOR_H from VELRVCPU */ /**********************************************************************/ DROP UPDATE VELVM_VCPU_PROC_H; DEFINE UPDATE VELVM_VCPU_PROC_H VERSION 'IBM.110' FROM VELRVCPU TO &PREFIX.VMPRF_PROCESSOR_H LET (SYSTEM_ID = VALUE(:SYSTEM_ID,'$UNKNOWN'), YEAR = CASE WHEN SUBSTR(DATE,1,2) > '50' THEN '19' ELSE '20' END, W_DATE = CASE WHEN (SUBSTR(DATE,7,2) = ' ' OR LENGTH(DATE) = 6) THEN DATE(YEAR 33 SUBSTR(DATE,1,2) 33 '-' 33 SUBSTR(DATE,3,2) 33 '-' 33 SUBSTR(DATE,5,2)) ELSE DATE( SUBSTR(DATE,1,4) 33 '-' 33 SUBSTR(DATE,5,2) 33 '-' 33 SUBSTR(DATE,7,2)) END, W_CPUADDR = CASE WHEN CPU = 'TOTAL' THEN 99 ELSE CPUADDR END, W_TSSTART = TIMESTAMP(W_DATE, STARTIME), W_TSSTOP = TIMESTAMP(W_DATE, STOPTIME), W_ETIME = INTERVAL(W_TSSTART, W_TSSTOP)) GROUP BY (DATE = W_DATE, PERIOD_NAME = VALUE(PERIOD(SYSTEM_ID, W_DATE, STARTIME),'?'), TIME = TIME(ROUND(STARTIME, 1 HOUR)), VM_SYSTEM_ID = SYSTEM_ID, --FROM SET COMMAND CPU_ADDRESS = W_CPUADDR) SET (CPU_ID = FIRST(PFXIDSER), CPU_MODEL_NO = FIRST(PFXIDMDL), ELAPSED_SECONDS = SUM(W_ETIME), CONNECT_SEC = SUM(CPUUTIL * SESYTPRP), PROC_USER_SEC = SUM(PFXPRBTM * SESYTPRP), PROC_SYSTEM_SEC = SUM(PFXTMSYS * SESYTPRP), PROC_EMUL_SEC = SUM(PFXUTIME * SESYTPRP), SYSTEM_WAIT_SEC = SUM(PFXTOTWT * SESYTPRP), SYSTEM_ONLINE_SEC = SUM(SESYTPRP), VECTOR_USER_SEC = SUM(PLSVFVTM * SESYTPRP), VF_OVERHEAD_SEC = SUM(PLSVFOTM * SESYTPRP), -- All samples are the same size. BUSY_TOTAL_PCT = AVG(CPUUTIL,RECORDS_COLLECTED), BUSY_USER_PCT = AVG(PFXUTIME,RECORDS_COLLECTED), BUSY_SYSTEM_PCT = AVG(PFXTMSYS,RECORDS_COLLECTED), BUSY_VECTOR_PCT = AVG(PLSVFVTM,RECORDS_COLLECTED), WAIT_PCT = AVG(PFXTOTWT,RECORDS_COLLECTED), ESTOR_PAGEIN_RATE = AVG(PLSPGIN,RECORDS_COLLECTED), ESTOR_PGEOUT_RATE = AVG(PLSPGOUT,RECORDS_COLLECTED), DASD_PAGEIN_RATE = AVG(PLSPIOPR,RECORDS_COLLECTED), DASD_PAGEOUT_RATE = AVG(PLSPIOPW,RECORDS_COLLECTED), FASTPATH_PERCENT = AVG(PFXPGIN*100/(PFXPGIN+PLSPGIN), RECORDS_COLLECTED), RECORDS_COLLECTED = SUM(1), PAGE_READS = SUM(PLSPIOPR * SESYTPRP), PAGE_WRITES = SUM(PLSPIOPW * SESYTPRP), PAGES_READ_TO_MS = SUM((PFXPGIN + PLSPGIN) * SESYTPRP), PAGES_WRIT_TO_ES = SUM(PLSPGOUT * SESYTPRP), SPOOL_READS = SUM(PLSPIOSR * SESYTPRP), SPOOL_WRITES = SUM(PLSPIOSW * SESYTPRP), DIAG_INSTRUCTIONS = SUM(PLSDIAGT * SESYTPRP), SIMUL_INSTRUCTIONS = SUM(PLSPRVIS * SESYTPRP), SIGP_INTERRUPTS = SUM(PLSEXTNC * SESYTPRP), EXTERN_INTERRUPTS = SUM(PLSEXTNX * SESYTPRP), CSCH_COUNT = SUM(PLSCTCS * SESYTPRP), RSCH_COUNT = SUM(PLSCTRS * SESYTPRP), SSCH_COUNT = SUM(PLSCTSS * SESYTPRP), HSCH_COUNT = SUM(PLSCTHS * SESYTPRP) ); /**********************************************************************/ /* Define Update for table VMPRF_SYSTEM_H from VELRVCPU */ /**********************************************************************/ DROP UPDATE VELVM_VCPU_SYST_H; DEFINE UPDATE VELVM_VCPU_SYST_H VERSION 'IBM.110' FROM VELRVCPU TO &PREFIX.VMPRF_SYSTEM_H LET ( SYSTEM_ID = VALUE(:SYSTEM_ID,'$UNKNOWN'), YEAR = CASE WHEN SUBSTR(DATE,1,2) > '50' THEN '19' ELSE '20' END, W_DATE = CASE WHEN (SUBSTR(DATE,7,2) = ' ' OR LENGTH(DATE) = 6) THEN DATE(YEAR 33 SUBSTR(DATE,1,2) 33 '-' 33 SUBSTR(DATE,3,2) 33 '-' 33 SUBSTR(DATE,5,2)) ELSE DATE( SUBSTR(DATE,1,4) 33 '-' 33 SUBSTR(DATE,5,2) 33 '-' 33 SUBSTR(DATE,7,2)) END, W_COUNT = CASE WHEN QUALIFIE = 'TOTAL' THEN 0 ELSE 1 END, W_TSSTART = TIMESTAMP(W_DATE, STARTIME), W_TSSTOP = TIMESTAMP(W_DATE, STOPTIME), W_ETIME = INTERVAL(W_TSSTART, W_TSSTOP) ) GROUP BY ( DATE = W_DATE, PERIOD_NAME = VALUE(PERIOD(SYSTEM_ID, W_DATE, STARTIME),'?'), TIME = TIME(ROUND(STARTIME, 1 HOUR)), VM_SYSTEM_ID = SYSTEM_ID --FROM SET COMMAND ) SET ( CPU_ID = FIRST(PFXIDSER), CPU_MODEL_NO = FIRST(PFXIDMDL), ELAPSED_SECONDS = SUM(W_ETIME), CONNECT_SEC = SUM(CPUUTIL * SESYTPRP), PROC_USER_SEC = SUM(PFXPRBTM * SESYTPRP), PROC_SYSTEM_SEC = SUM(PFXTMSYS * SESYTPRP), PROC_EMUL_SEC = SUM(PFXUTIME * SESYTPRP), SYSTEM_WAIT_SEC = SUM(PFXTOTWT * SESYTPRP), SYSTEM_ONLINE_SEC = SUM(SESYTSYP), VECTOR_USER_SEC = SUM(PLSVFVTM * SESYTPRP), VF_OVERHEAD_SEC = SUM(PLSVFOTM * SESYTPRP), -- All samples are the same size. BUSY_TOTAL_PCT = AVG(CPUUTIL,RECORDS_COLLECTED), BUSY_USER_PCT = AVG(PFXUTIME,RECORDS_COLLECTED), BUSY_SYSTEM_PCT = AVG(PFXTMSYS,RECORDS_COLLECTED), BUSY_VECTOR_PCT = AVG(PLSVFVTM,RECORDS_COLLECTED), WAIT_PCT = AVG(PFXTOTWT,RECORDS_COLLECTED), ESTOR_PAGEIN_RATE = AVG(PLSPGIN,RECORDS_COLLECTED), ESTOR_PGEOUT_RATE = AVG(PLSPGOUT,RECORDS_COLLECTED), DASD_PAGEIN_RATE = AVG(PLSPIOPR,RECORDS_COLLECTED), DASD_PAGEOUT_RATE = AVG(PLSPIOPW,RECORDS_COLLECTED), FASTPATH_PERCENT = AVG(PFXPGIN*100/(PFXPGIN+PLSPGIN), RECORDS_COLLECTED), RECORDS_COLLECTED = SUM(1), PAGE_READS = SUM(PLSPIOPR * SESYTPRP), PAGE_WRITES = SUM(PLSPIOPW * SESYTPRP), PAGES_READ_TO_MS = SUM((PFXPGIN + PLSPGIN) * SESYTPRP), PAGES_WRIT_TO_ES = SUM(PLSPGOUT * SESYTPRP), SPOOL_READS = SUM(PLSPIOSR * SESYTPRP), SPOOL_WRITES = SUM(PLSPIOSW * SESYTPRP), DIAG_INSTRUCTIONS = SUM(PLSDIAGT * SESYTPRP), SIMUL_INSTRUCTIONS = SUM(PLSPRVIS * SESYTPRP), SIGP_INTERRUPTS = SUM(PLSEXTNC * SESYTPRP), EXTERN_INTERRUPTS = SUM(PLSEXTNX * SESYTPRP), CSCH_COUNT = SUM(PLSCTCS * SESYTPRP), RSCH_COUNT = SUM(PLSCTRS * SESYTPRP), SSCH_COUNT = SUM(PLSCTSS * SESYTPRP), HSCH_COUNT = SUM(PLSCTHS * SESYTPRP) ); /**********************************************************************/ /* Define Update for table VMPRF_SYSTEM_H from VELRVCPU */ /**********************************************************************/ DROP UPDATE VELVM_VSYS_SYST_H; DEFINE UPDATE VELVM_VSYS_SYST_H VERSION 'IBM.110' FROM VELRVSYS TO &PREFIX.VMPRF_SYSTEM_H LET (SYSTEM_ID = VALUE(:SYSTEM_ID,'$UNKNOWN'), YEAR = CASE WHEN SUBSTR(DATE,1,2) > '50' THEN '19' ELSE '20' END, W_DATE = CASE WHEN (SUBSTR(DATE,7,2) = ' ' OR LENGTH(DATE) = 6) THEN DATE(YEAR 33 SUBSTR(DATE,1,2) 33 '-' 33 SUBSTR(DATE,3,2) 33 '-' 33 SUBSTR(DATE,5,2)) ELSE DATE( SUBSTR(DATE,1,4) 33 '-' 33 SUBSTR(DATE,5,2) 33 '-' 33 SUBSTR(DATE,7,2)) END, W_TSSTART = TIMESTAMP(W_DATE, STARTIME), W_TSSTOP = TIMESTAMP(W_DATE, STOPTIME), W_ETIME = INTERVAL(W_TSSTART, W_TSSTOP)) GROUP BY (DATE = W_DATE, PERIOD_NAME = VALUE(PERIOD(SYSTEM_ID, W_DATE, STARTIME),'?'), TIME = TIME(ROUND(STARTIME, 1 HOUR)), VM_SYSTEM_ID = SYSTEM_ID) --FROM SET COMMAND SET (USERS_LOGGED = SUM(SYSUSRS), --AVG USERS_DORMANT = SUM(SRMCDORM)); --AVG /**********************************************************************/ /* Define Update for table VMPRF_USER_H from VELRVUSR */ /**********************************************************************/ DROP UPDATE VELVM_VUSR_USER_H; DEFINE UPDATE VELVM_VUSR_USER_H VERSION 'IBM.110' FROM VELRVUSR WHERE (USRTYPE = 'USER' OR USRTYPE = 'SYST' OR USRTYPE = 'SRVR') TO &PREFIX.VMPRF_USER_H LET (SYSTEM_ID = VALUE(:SYSTEM_ID,'$UNKNOWN'), YEAR = CASE WHEN SUBSTR(DATE,1,2) > '50' THEN '19' ELSE '20' END, W_DATE = CASE WHEN (SUBSTR(DATE,7,2) = ' ' OR LENGTH(DATE) = 6) THEN DATE(YEAR 33 SUBSTR(DATE,1,2) 33 '-' 33 SUBSTR(DATE,3,2) 33 '-' 33 SUBSTR(DATE,5,2)) ELSE DATE( SUBSTR(DATE,1,4) 33 '-' 33 SUBSTR(DATE,5,2) 33 '-' 33 SUBSTR(DATE,7,2)) END, W_TSSTART = TIMESTAMP(W_DATE, STARTIME), W_TSSTOP = TIMESTAMP(W_DATE, STOPTIME), W_ETIME = INTERVAL(W_TSSTART, W_TSSTOP)) GROUP BY (DATE = W_DATE, PERIOD_NAME = VALUE(PERIOD(SYSTEM_ID, W_DATE, STARTIME),'?'), TIME = TIME(ROUND(STARTIME, 1 HOUR)), VM_SYSTEM_ID = SYSTEM_ID, --FROM SET COMMAND USER_CLASS = VALUE(LOOKUP GROUP_NAME IN &PREFIX.USER_GROUP WHERE SYSTEM_ID LIKE SYSTEM_ID AND USRID LIKE USER_ID, CLASSID), USER_ID = USRID) SET (ACTIVE_SEC = SUM(VACTIVE), CONNECT_SEC = SUM(CONNECT), LOGGED_SEC = SUM(LOGGEDTM), CPU_TOTAL_SEC = SUM(VMDTTIME), CPU_VIRTUAL_SEC = SUM(VMDVTIME), VECTOR_USER_SEC = SUM(VMDVFVTM), RECORDS_COLLECTED = SUM(1), DASD_IO = SUM(VMDVDSCT), CONSOLE_IO = SUM(VMDVCSCT), UR_IO = SUM(VMDVUSCT), CTC_IO = SUM(VMDVTSCT), OTHER_IO = SUM(VMDVOSCT), DASD_IO_RATE = AVG(VMDVDSCT/LOGGEDTM,RECORDS_COLLECTED), PAGE_IO_RATE = AVG(((VMDCTPGR + VMDCTPGW)/LOGGEDTM), RECORDS_COLLECTED), PAGE_READS = SUM(VMDCTPGR), PAGE_WRITES = SUM(VMDCTPGW), PAGES_READ_TO_MS = SUM(VMDCTXRD), PAGES_WRIT_TO_ES = SUM(VMDCTXWT), SPOOL_READS = SUM(VMDCTSPR), SPOOL_WRITES = SUM(VMDCTSPW), IUCV_DATA_RECEIVED = SUM(VMDISTVM), IUCV_DATA_FAILED = SUM(VMDISUVM), IUCV_DATA_SENT = SUM(VMDISEVM), IUCV_MSGQ_SEND = SUM(CALIUCVS), VMCF_DATA_RECEIVED = SUM(VMDVSTVM), VMCF_DATA_FAILED = SUM(VMDVSUVM), VMCF_DATA_SENT = SUM(VMDVSEVM)); /**********************************************************************/ /* Define Update for VMPRF_DASD_H from VELRVDEV */ /**********************************************************************/ DROP UPDATE VELVM_VDEV_DASD_H; DEFINE UPDATE VELVM_VDEV_DASD_H VERSION 'IBM.110' FROM VELRVDEV TO &PREFIX.VMPRF_DASD_H LET (SYSTEM_ID = VALUE(:SYSTEM_ID,'$UNKNOWN'), YEAR = CASE WHEN SUBSTR(DATE,1,2) > '50' THEN '19' ELSE '20' END, W_DATE = CASE WHEN (SUBSTR(DATE,7,2) = ' ' OR LENGTH(DATE) = 6) THEN DATE(YEAR 33 SUBSTR(DATE,1,2) 33 '-' 33 SUBSTR(DATE,3,2) 33 '-' 33 SUBSTR(DATE,5,2)) ELSE DATE( SUBSTR(DATE,1,4) 33 '-' 33 SUBSTR(DATE,5,2) 33 '-' 33 SUBSTR(DATE,7,2)) END, W_TSSTART = TIMESTAMP(W_DATE, STARTIME), W_TSSTOP = TIMESTAMP(W_DATE, STOPTIME), W_ETIME = INTERVAL(W_TSSTART, W_TSSTOP)) GROUP BY (DATE = W_DATE, PERIOD_NAME = VALUE(PERIOD(SYSTEM_ID, W_DATE, STARTIME),'?'), TIME = TIME(ROUND(STARTIME, 1 HOUR)), VM_SYSTEM_ID = SYSTEM_ID, DEVICE_NUMBER = RDEVDEV, VOLSER = RDEVSER) SET (CONNECT_SEC = SUM(SCMCNTIM * SCMSSCH), DISCONN_SEC = SUM(SCMDDTIM * SCMSSCH), PENDING_SEC = SUM(SCMFPTIM * SCMSSCH), ELAPSED_SEC = SUM(W_ETIME), HF_SAMPLES = SUM(HFRDEVCT), ONLINE_SEC = SUM(SEIODDEV), CONNECT_MSEC = AVG((SCMCNTIM * SCMSSCH),SSCH_AND_RSCH), DISCONN_MSEC = AVG((SCMDDTIM * SCMSSCH),SSCH_AND_RSCH), PENDING_MSEC = AVG((SCMFPTIM * SCMSSCH),SSCH_AND_RSCH), SERVICE_MSEC = AVG(SERVTIME*SCMSSCH,SSCH_AND_RSCH), BUSY_PCT = AVG(DEVBUSY,RECORDS_COLLECTED), DEVICE_IO_RATE = AVG(RATE,RECORDS_COLLECTED), DEVICE_QUEUE = AVG(QUEUELEN,RECORDS_COLLECTED), SSCH_QUEUED = SUM(HFCTIO), SSCH_AND_RSCH = SUM(SCMSSCH), RECORDS_COLLECTED = COUNT(1));

If you can't measure it, I'm just not interested!™
© 2006 Velocity Software, Inc.
Webmaster