White Papers
Abstract
This article helps the user to understand basic principles needed in planning for an initial setup of the software, and some estimation around capacity as workloads and data expand and grow in your environment. The article is not a pure subscription, but rather provides a general approach to capacity planning, as every customer's environment is different and governed by different policies.
Content
- Offers improved User concurrency
- The ability to distribute workloads
- High availability for when failover or relocation of workloads is required
- High availability for outages related to a hardware problem, network failure, or required maintenance
- zIIP™ eligibility - facilitates cost reduction for production environments and provides more CPU processing availability by delivering up to 99% utilization.
- MapReduce improves elapsed time reduction and overall performance.
- DVM Server memory allows the execution of complex SQL with the benefits of improved response time. Server memory or cache maintains the metadata, as opposed to physical data, to enhance SQL processing.
- Key-based access methods provide direct access to backend data files servicing popular databases running on the mainframe, such as Db2 for z/OS and IMS.
- Transaction-based workloads - typically small amounts of data processed and transferred per transaction delivered to many users. Interactions between the user and the system are nearly real-time. Mission-critical applications, therefore, require continuous availability, high performance, data protection, and data integrity. Transactions represent ATM transactions such as deposits, withdrawals, inquiries or transfers, supermarket payments with debit or credit cards, and online purchases.
- Web-based workloads - enterprises shift functions and applications to online activity for greater access and improved usability through an application programming interface (API), such as Java™, where they can be written to run under a Java™ virtual machine (JVM). The advantage is that applications become independent of the operating system in use.
- Batch processing - run without user interaction, where the job reads and processes data in bulk, perhaps Terabytes of data, and produces output, such as billing statements. Mainframe systems are equipped with sophisticated job scheduling software that allows data center staff to submit, manage, and track the execution and out-of-batch jobs. Key characteristics are larger amounts of data, that represent many records, run in a predefined batch window, and can consist of the execution of hundreds or thousands of jobs in a pre-established sequence.
- Mixed workloads - consist of a combination of online transactions, web-based, and batch processing that perform analytic processing, real-time analytics, Machine Learning, and Artificial Intelligence.
Workload Type | No. of Servers | GPA | zIIP processors |
---|---|---|---|
Transactional | 1-5 | 16 Gigabytes | 4 |
Batch processing (large data pulls) | >5 | 32 Gigabytes | >5 |
- Tools provided by IBM for capacity planning (monitoring)
- SMF – System Management Facility
- RMF – Resource Monitoring Facility
- CPM - Capacity Provisioning Manager
- Percentage of the LPAR share
- Percentage of a single processor capacity
- Memory Limit
- MSU/H
- Combined general purpose and specialty processor consumption
DVM SMF 249 provides a more granular output when compared to a standard SMF 30 record. The DVM SMF 249 can state where the CPU is used more specifically and can log each inbound client request in the DVM Server.
- Detailed CPU time based on Server (client-server request)
- Detailed CPU time based on Server (non-SOAP web request)
- Detailed output on each SQL statement run
- CPU and zIIP details based on each query by combining data from Type 01 and Type 0
AVZ.STORAGE is used to record the private and virtual storage that is used by the DVM Server address space in 15-minute intervals.
Column | Description |
---|---|
PRODUCT_SUBSYSTEM | The 4-character DVM subsystem ID |
INTERVAL_START | The start time of summary activity |
MAXIMUM_USERS | The maximum number of users allowed |
SUBPOOL | The name of virtual storage information |
BELOW_16M | Amount of memory in use under 16 Megabytes |
ABOVE_16M | Amount of memory in use over 16 Megabytes |
SMFID | The SMFID as defined within the DVM Server |
- Allocate 8 or 16 Gigabytes of memory for the DVM Server. Allocate more memory based on the complexity of DML, such as heterogeneous JOINs.
- Workload-based Server definitions (Transactional vs Large Data pulls)
- Group data sources based on the business model
- Choose the appropriate data access modes (multiple access methods are available)
- Write SQL statements whose result set size matches the LPAR configuration
Triggers | Recommendations |
---|---|
No. of DVM servers |
- Perform load balancing with WLM over multiple DVM servers that use the same port
- Distribute workloads across multiple DVM servers
- Investigate implementing High Availability that uses VIPA
|
8 - 16 Gigabytes of Memory |
- Allows better concurrency
- Allows complex SQL to be better processed
- Allows large data pulls to be processed
- More memory improves query response time
|
Parallelism |
- Implement Driver or Server-level parallelism
- Configure MRC and MRCC to execute a single request over multiple threads
- Configure the use of Virtual Parallel Data (VPD)
|
Access Method |
- For 'keyed' data that use Database Control (open thread access is preferred)
- Open Database Access (ODBA) for concurrent access to data
- Use IMS direct or DB2 direct for read-only access to bypass related subsystems
- Distributed Relational Database Architecture™ (DRDA)
|
General processors | - Recommend a minimum of 2 General processors for an initial configuration |
zIIP specialty engines | - Improves latency and transition of GP processing to zIIP processors |
Table 3. General recommendations for performance for capacity planning
There is no significant use or accumulation of resources associated with DVM Servers that would require they be restarted routinely or as part of scheduled maintenance.
Memory consumption
In many cases, it is recommended to add 8 - 16 GB of memory virtual storage per system. Allocating more memory helps to avoid staging data on each participating Z system. Based on a customer's complexity of SQL, JOINs, other types of operations that can be performed in memory, more capacity can be needed depending on current usage.
The number of Virtual Tables (VT) does not degrade performance, but the number of virtual tables joined into a complex SQL can exceed the total memory that is allocated to the SQL Engine. The number of columns, length of columns, data types, and the number of records materialized in physical memory need to be monitored.
The number of SQL statements running concurrently depends upon the memory allocated vs (the size of the result set record, number of records read, number of users, and so on). Writing optimized SQL statements can reduce the workload required for a Z System.
zIIP processing
The DVM server has the ability to run in Service Request Block (SRB) mode, which allows significant portions of workloads to be offloaded onto zIIP processors (in some cases up to 99%). This delivers a low-cost benefit for organizations because they're able to offload workloads onto much more cost-effective specialty engines, in comparison to General Processors.
ZIIP eligibility varies based on the access path to underlying data structures, as well as DVM-specific operations performed on that data. Offload also varies across DBCTL, Java™, and combinations of z/OS Connect, IMS Connect, and IMS-Direct, for example. Each data source has a specific range of zIIP eligibility.
- DBCTL does not provide any zIIP eligibility
- Java™ offers unrestrained zIIP eligibility by using DRDA
- Java™ workloads originating outside of the Z system do not benefit from zIIP eligibility
- z/OS Connect-IMS Connect delivers a portion of zIIP eligibility
- IMS-Direct for larger data pulls to support analytics is fully zIIP eligible (non-TXN environment)
Using MapReduce for parallelism
- Reduction in batch execution time can be achieved through DVM tuning parameters.
- A controlled benchmark performed by IBM demonstrates the effectiveness of the DVM Server for both zIIP processing and parallelism. Both advantages are shown in Table 4, Table 5, and Table 6.
Row Labels | Sum of CPU Time (ms) | Sum of zIIP Time (ms) | Sum of IICP Time (ms) | Sum of zIIP NTime (ms) | % zIIP eligibility |
---|---|---|---|---|---|
DVM1 | 7099.03 | 5609.55 | 1389.58 | 5609.55 | 98.59% |
- Test cases 4 and 2 have similar configurations
- The degree of parallelism of 8 reduces the overall elapsed time from 89.68 minutes to 17 minutes
Adding three more zIIP specialty engines shown in Test Cast #8 reduces elapsed time to 13.82 minutes. This is an 85% improvement in query execution time.
Test Case | GPP | No. of zIIP Engines | Degree of Parallelism | Elapsed time in minutes | SMT |
---|---|---|---|---|---|
1 | 8 | 8 | 8 | 118.96 | 1 |
2 | 8 | 5 | 0 | 98.68 | 1 |
3 | 8 | 5 | 4 | 27.05 | 1 |
4 | 8 | 5 | 8 | 17.14 | 1 |
5 | 8 | 5 | 8 | 20.84 | 2 |
6 | 8 | 5 | 10 | 17.00 | 2 |
7 | 8 | 5 | 16 | 15.73 | 2 |
8 | 8 | 8 | 8 | 13.83 | 1 |
8 | 8 | 8 | 8 | 17.62 | 2 |
10 | 8 | 8 | 16 | 11.72 | 2 |
Access | Insert | Update | Delete |
---|---|---|---|
IMS (DBCTL) | 99.93443898 | 99.3218316 | 99.21321732 |
IMS (OTT) | 99.95473499 | 99.3764378 | 99.36438997 |
IMS Direct | 99.87326988 | 99.8436479 | 99.99232788 |
DB2 pass-through | 99.32632198 | 99.3476346 | 99.38136378 |
DB2 Direct | 99.73467337 | 99.6431871 | 99.67346731 |
VSAM | 84.62641988 | 77.337337 | 81.2397289 |
Jgate - Oracle | 97.83463378 | 97.2623789 | 97.32113628 |
Best practices for deploying the DVM server
- Access to the data sources
- Access to copybooks
- Naming conventions
- Test data
- SELECT * FroM table LIMIT 10;
- SELECT TOP 10 * FROM table;
- Multiple DVM server instances
Each LPAR within your Parallel Sysplex may need to have an active DVM server because individual servers cannot connect to other servers without additional configuration. Each DVM server needs to be connected to the local Db2 subsystem, for example, if you use Db2 for z/OS. - Shared resources
All resources required by the DVM server (data sources, copybooks, configuration files, and metadata catalogs) need to be on a shared DASD. This way, all the DVM servers within your Parallel Sysplex can use the same information. - WLM and DVIPA connections
In a production environment, it is recommended to connect your DVM server(s) to the workload balancer you are using (for example, Workload Manager) and enable DVIPA connections to each of your DVM servers. This will allow WLM to balance the workload between the servers in your Sysplex. It also allows the workflow to continue uninterrupted in the case the servers in your Sysplex go down, or a complete LPAR goes off-line for any reason.
Product Synonym
DVM
Was this topic helpful?
Document Information
Modified date:
24 June 2021
UID
ibm16450451