Académique Documents
Professionnel Documents
Culture Documents
Table of contents
Acknowledgements...................................................................................................................5 Abstract......................................................................................................................................7
What is a Sizing?....................................................................................................................................7
Page 3
Change History Version 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.10 0.11 0.12 0.13 0.14 0.15 Date 2008.08.18 2008.09.12 2008.10.15 2008.11.19 2008.11.21 2008.12.5 2008.12.22 2010.26.03 2010.12.04 2010.28.04 2010.11.02 2010.11.22 2010.12.13 2010.12.22 2011.12.21 Description Created Template Update and re-format document Updated with additional content Updated with additional content Format updates Logo update; added a feedback section System z updates Updated Tivoli, ISV and Additional Information sections Updated Additional Information section Added new sections on Rational Sizing topics and refreshed ISV, Power and System x sections Added additional Rational content Added content on Cognos BI, IBM Smart Analytics, and updated the DB2, ECM, and Power Sizing sections Added Composite Solution Sizing Updated content for SAP, Oracle and Cross Industry ISVs Updated content for Power i, System z, Connections Solutions, Lotus Expeditor and Lotus Sametime Added content on Cloud on Power
Page 4
Acknowledgements
Consultative and collaborative efforts were contributed by the following members of the Global Techline Sizing Council (GTSC) and Global Techline Center of Excellence (CoE) team members: 2010 Project Team Gail Titus, Sizing Best Practices Project Team Lead, GTSC, ISV Sizing Team Mike Adair, GTSC, Information Management Team Dexter Charles, GTSC, Power Team Joe Ciervo, GTSC, WebSphere Team Anita Devadason, GTSC, ISV Sizing Team Poornima Seetharamaiah, GTSC, Rational Team
Management Sponsor Ilan Josset, Client Technical Manager , IBM Collaboration Solutions / ECM, Global Techline CoE
The following extended team members provided insight and/or content to the project: Viola Berg, System z Capacity Planning & Sizing Team, GTSC, Global Techline CoE Luanne Carlton, ISV Sizing Specialist, Global Techline CoE Regina Cason, System z Capacity Planning & Sizing Team, GTSC, Global Techline CoE Steve Clark, Software IT Specialist, Rational, Global Techline CoE Charles DeLone, Software IT Specialist, Lotus, GTSC, Global Techline CoE Terry Dimka, Client Technical Specialist, Power Systems, Global Techline CoE Deann Dye, Client Technical Specialist, Power Systems, Global Techline CoE Mike Garner, Software IT Specialist, Lotus - Enterprise Access and Client Technologies, Global Techline CoE Dariusz Gorczyca, Software IT Specialist, IBM Collaboration Solutions, Global Techline CoE Lewis Grizzle, Software IT Specialist - WebSphere - On Demand Sizing Specialist, GTSC, Global Techline CoE Phil Hardy, ISV Sizing Specialist, Global Techline CoE Kathleen Hibbert, Client Technical Specialist, Power Systems, Global Techline CoE Edward Huang, ECM Technical Sales Specialist, Global Techline CoE Robert Jump, IT Specialist, IBM/Oracle International Competency Center Azam Khan, ISV Sizing Specialist, Global Techline CoE Rich LaFrance, Client Technical Specialist, Power Systems, Global Techline CoE Larry Mial, I/T Specialist, System x, GTSC, Global Techline CoE Linda Miller, Software IT Specialist - WebSphere Portal, IBM WPLC, Global Techline CoE Michele Montagnino, I/T Specialist, System x, GTSC, Global Techline CoE Rolf Mueller, Client Technical Specialist, System z, Global Techline CoE Edward Ng, Software I/T Specialist - WebSphere - BPM - Global Techline CoE
IBM internal Use Only Page 5
Diane Nissen, ISV Sizing Specialist, Global Techline CoE Bill Parrill, Software IT Specialist, Lotus, Global Techline CoE Patricia Raymond, ISV Sizing Specialist, Global Techline CoE YoungSil Rim, ISV Sizing Specialist, Global Techline CoE Kevin Wheaton, Software IT Specialist, Tivoli - Storage, Global Techline CoE Gracie Williams, Software IT Specialist, Lotus, Global Techline CoE John Williams, ISV Sizing Specialist, Global Techline CoE Janet Wong, Technical Sales Specialist, System Storage - Disk/Studies, Global Techline CoE
Page 6
Abstract
This document identifies best practices for sizing analyses. The target audience is experienced sizers. The Techline Sizing Council has created prerequisite collateral in the form of "Sizing Roadmaps" for various hardware and software platforms. Field sellers may find the content to be a valuable reference since the scope includes presales hardware and software sizing disciplines. Capacity planning topics are excluded at this time. The objective of this document is to furnish sizing practitioners with critical factors that contribute to a comprehensive sizing analysis. The documents contents are a compilation of best practices based on successful outcomes, experience, and research that have proven to be reliable across hardware and software platforms. The document includes general and specific best practices that can be employed to enhance the thoroughness and quality of sizing recommendations and will allow sizers to heighten sizing consultative skills.
What is a Sizing?
A sizing estimate is an approximation of the hardware or software resources required to support an application set that is either currently implemented or new. It is a pre-sales effort aimed at addressing customer requirements. The level of effort and scope of sizing can range from small to very significant. Sizing does not constitute a performance guarantee.
Page 7
Page 8
Domino solutions can typically support a given number of email users per Ethernet port, depending on the Network card speed? 100MBPS might typically support 1000-2000 Domino users per Ethernet port 1GBPS might typically support 3000-5000 Domino users per Ethernet port Does the solution need a dedicated Ethernet port for H/A or D/R replication?
Page 10
Does the recommended solution provide ample growth for the Workload with available model upgrades? Is CoD upgrade capability with minimal disruption available for growth? (may be important to customer to have upgrade capability with little impact to a 24x7 operation) Is Temporary CoD available for peak periods beyond what is sized here? Can the workload benefit from a shared-processor pool environment? Shared-processor pool provides capabilities for micro-partitions to donate back unused cycles during nonpeak times. These resources can be utilized by other partitions on the system. Power Systems Hardware/Software specifics with regard to sizing: H/A and D/R Solutions If this solution is using either H/A or D/R, is this an Active/Active or Active Passive scenario? Is workload balancing being used If so did you size for both normal mode (workload split) as well as Failover mode (entire workload on 1 system) Can Processor (and potentially Memory) CoD be used at Failover and been sized for? Has RAC/Clustering or replication overhead been accounted for? Active Passive Scenario: Is the entire workload with cluster/replication overhead been sized for the Primary system? Has the Cluster backup system been sized for both Passive mode as well as Failover mode? Can processor (and potentially memory) CoD be implemented at Failover time Has a CBU model been given consideration and sized? H/A = High Availability: Providing live backup system for failover (live cutover) D/R = Disaster Recovery: Providing backup offsite system for system rebuild on temporary system 710/720/730/740 Memory Performance Considerations: More memory DIMMs equates to more memory bandwidth. Max bandwidth is achieved with all DIMM slots filled with max quantity of memory riser cards. Note for typical commercial applications on servers with typical usage levels, the incremental performance gained by max number of DIMMs vsa subset say of 50% DIMM slot utilization is very modest. Note that going from 2 DIMMs to 4 DIMMs doubles the memory bandwidth. Generally recommend at least 4 DIMMs (2 features or 1 quad) for each riserunless system is expected to be very lightly loaded With multiple risers, its usually best to balance memory Balance total GB per riser before balancing number of DIMMs per riser Note for typical commercial applications on servers with typical usage levels, differences of 2X between largest GB riser and smallest GB riser are very small performance impact. With two socket servers (730/740) generally best to spread memory between sockets Suggest having at least two risers, so that at least one riser associated with each socket and each riser has a quad of memory DIMMs unless system is expected to be very lightly loaded Observations: Adding memory requires the system to be powered down Active Memory Expansion can effectively expand memory capacity for AIX 6.1 and later for many application environments Active Memory Sharing Provides the ability to move memory from one partition to another.
Sizing Best Practices Guidelines IBM internal Use Only Page 12
This feature is best fit when partitions within a system have different busy times. Active Memory Sharing is supported with PowerVM Enterprise Edition and AXI, IBM i, and Linux partitions. Active Memory Expansion - Expand memory beyond physical limits; effectively up to 100% more memory. Uses compression/decompression to effectively expand the true physical memory available for client workloads. Actual expansion results dependent upon how compressible the data being used in the application and available CPU resource. Active Memory Expansion is supported only on POWER7 hardware with AIX 6.1 and Later. Note that Active Memory Expansion requires an HMC and HMCs are not used on POWER7 blades
Memory bandwidth requirements. System performance that is dependent on memory bandwidth can be improved by installing two smaller features per processor card as opposed to one large feature per processor card. If sizing to upgrade a system, with Enterprise Power Systems, a processor card with a given memory feature can be mixed in the same CEC enclosure with a processor card containing other memory features. For all processors and all system configurations, if memory features in a single system have different frequencies, all memory in the system will function according to the lowest frequency present. Consult with a Power p Specialist on the installed server and current memory options if optimal memory bandwidth is critical. When implementing partitioning account for the resource overhead required by the system hypervisor. Rule of thumb is 8% of total system memory. As part of PowerVM there is an appliance server with which you can associate physical resources and that allows you to share these resources amongst a group of logical partitions. The Virtual I/O (VIO) Server can use both virtualized storage and network adapters, making use of the virtual SCSI and virtual Ethernet facilities. The VIO server will use CPU resources and for mission critical workloads, two VIO servers are recommended. If using the VIO server to manage micro-partition and share resources valid the selected Power p model will support requirements for the sized partition and VIO server(s). It is best practice to use separate volume groups for applications and user data in order to keep the rootvg volume group reserved for the AIX operating system. This makes rootvg more compact and easier to manipulate if required. This practice potentially impact internal disk requirements to support both the operating system and the application software.
Cloud on Power
IBM has two formal offerings for Cloud on Power: CloudBurst on Power Starter Kit for Cloud on Power These offerings are cross-brand solutions consisting of Power Systems, Storage Systems, and Software in pre-designed and tested solutions CloudBurst and Starter Kit are typically positioned for private cloud environments CloudBurst on Power range from minimum design with only a management node to a maximum design with 10 compute nodes. It is important to understand the compute node requirements and workload resource requirements. Storage requirements are also important considerations for a CloudBurst on Power design, validate storage needs. Complete the questionnaire to obtain a solution design: http://w303.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/PRS4370 Starter Kit for Cloud on Power is software offering from STG. IBM also created reference configurations around this offering. The reference configurations are based on a rack and blade form-factors. Understand the cloud environment the customer is requiring and verify support with Starter Kit In addition to the formal offerings, there are custom Cloud on Power solutions that IBM will size based on customer environment and specifications Techline Power Systems team should be engaged to assist on Cloud on Power requests
IBM internal Use Only Page 14
Page 15
What is driving the growth rate (new applications, new services, multiple copies of data, etc.)? Related to questions about business initiatives above, what new or anticipated applications will drive storage growth? Are there Storage Area Networks currently installed? Do you anticipate being impacted by regulatory requirements related to data archiving?
Page 17
Useful for high density compute and memory capacity Recommend external boot (boot from SAN/iSCSI) to leverage platform benefits Cost associated with platform shared among blades
Page 19
Control Program, it may be better to size the processor as two LPARs with fewer engines assigned to each LPAR instead of one LPAR assigned with all the engines. Will the target hardware be a z10 EC or zEnterprise Processor running z/OS, using HiperDispatch ? Workloads that are fairly CPU-intensive (like batch applications) will see only small improvements. Workloads that tend to have common tasks and high dispatch rates as often seen in transactional applications may see larger improvements, depending on the size of the z/OS images involved. The sizing should consider the effects of HiperDispatch for the specific workload to be run. No memory sizing recommendations are done for System z processors, however, guidelines on memory requirements are provided. Topics to consider - implications of parallel sysplex, hipersockets, DB release levels, hardware data compression, zVM, Specialty engines, LPAR overhead, growth and characteristics of an installed and/or new workloads. The future of application sizing has evolved toward solution sizing as opposed to a single software product sizing. The System z Brand sizing tools currently support SOA solution sizing. Stay Tuned.
Page 21
Page 22
Page 24
Use multiple tools, rules of thumbs and sizing methodology in producing a recommendation Set expectation levels for sizing z to workstation DB2 migration Always recommend InfoSphere Balanced Warehouse for warehouse applications. These solutions have been pre tested and pre sized
Understand full text indexing and content-based searches and retrievals (CBR) Understand storage implication in a large archiving solution
Oracle Database
The Techline Sizing Team has a sizing methodology for custom applications that do NOT follow the sizing processes of other ISV applications. The nature of the Oracle Database workload is described as either OLTP (Online Transaction Processing) or Non-OLTP. The sizing estimate is only done for the production database tier. High availability is centered on Oracle RAC. There are no typical rules of thumb used since each application is custom. The WLE (Workload Estimator) tool that is used to model the Oracle Database, however, the tool has limitations and manual calculations must supplement the tool output. . The ISV Sizing Team does not handle sizing for disaster recovery environments at this time.
Oracle Insight
Oracle Insight software will capture performance statistics provided by a production Oracle 10g (or above) database. The captured statistics are written to the hard drive of a Windows PC dedicated for the collection process. When the collection process is complete, the statistical data is verified and compressed before being sent to IBM for analysis. A report will be sent by IBM to the customer detailing how the production database was utilized. The provided data collection tool is designed to have a minimal impact on the production database environment. The data collection tool is packaged as a Windows install image for convenient installation on a Win2000/WinXP PC. README documentation is packaged with the software. Sizing is only done for production at this time. The Insight for Oracle tool MUST be installed by the person who has DB Admin privileges on the system being monitored. The best results are calculated when the Oracle DB system is being used during month-end processing, therefore data collected during that window usually captures the best workload for sizing.
Oracle Applications Tier I (JD Edwards World, JD Edwards EnterpriseOne, OBIEE, Oracle eBusiness Suite, PeopleSoft Enterprise, and Siebel) I. Architectural Sizing Considerations
The sizing process takes into account the external clients production, non-production, high availability, disaster recovery, and security requirements. The sizing input from the client focuses on the requested implementation architecture, online users, batch workload, user growth, and business growth. Depending on the ISV, two-tier or three-tier architectures are sized. In some cases, other details that can be taken into consideration are reporting, ad-hoc query, and interfaces. Detailed focus is given to analyzing clients performance data for clients who already have the ISV package implemented and are looking to move to another platform, upgrade the ERP version and/or add new workload to their existing workload. Each ISV has its own unique application architecture. Non-production requirements vary by client. A typical nonproduction environment is 30% to 50% of the production workload. Some clients prefer to have a preproduction environment that is 100% of the production workload so they can test their production environment before migrating to production. High availability is achieved by PowerHA or Oracle RAC for Power systems and Oracle RAC, Microsoft Clustering or idle failover server for System x. Disaster recovery requirements vary by client. Some clients prefer to implement high availability / disaster recovery on separate physical servers at a dedicated disaster recovery site in the event the primary site is not
Sizing Best Practices Guidelines IBM internal Use Only Page 28
accessible. Typically, disaster recovery is sized at 50%-100% of production workload. Clients security concerns are addressed by duplicate number of web servers (one set of servers in front of the firewall and another set of servers in back of the firewall).
SAP Insight
This software is designed to provide a convenient and high-level workload analysis for a production SAP system. It captures performance and workload statistics generated by the clients production SAP system(s). The captured statistics are written to the hard drive of the Windows PC dedicated for the collection process. When the collection process is complete, the data is packaged and sent to IBM for analysis. The Insight for SAP Analysis Report provides performance and utilization statistics for the ERP system as a whole, for each instance (application server) in the ERP system, and for each application server and database host in the ERP system. The collection tool is designed to have minimal impact on the clients production environment.
Page 29
II. Rule of Thumb It is recommended to include at least 20% overhead for Power Linux solutions.
SAP sizing estimates are heavily virtualized. Power solutions consist of PowerVM, hypervisor requirements, shared processor pools, and VIOS (Virtual I/O Server). Power AIX solutions include very detailed LPARs so that clients have more flexibility to adjust parameters as needed per LPAR. In general, Power i solutions consist of less partitions in comparison to Power AIX solutions because clients tend to not change parameters and consider the environment to be user-friendly. Power Linux solutions are architected with an overhead since it is not as mature as AIX and typically consumes more hardware resources. System x virtualization sizing estimates typically incorporate VMWare. System x virtualized solutions include virtual CPUs per Virtual Machine and memory per Virtual Machine. System x solutions assume that hyper-threading is used. System z sizing estimates include a detailed breakdown of the Central Electronics Complex (CEC), Coupling Facility (CF) specialty engine, and zVM overhead. SAP is supported on System zs zIIP and IFL specialty engines but is not supported on zAAP engines. System z solutions assume hardware data compression for storage estimates.
Page 31
to Rational ClearCase and Rational ClearQuest. CM Server runs within the context of a unified application server that combines the IBM WebSphere Application Server and IBM HTTP Server to provide Web support for Rational ClearQuest Web (CQ Web) and Rational ClearCase Remote Client (CCRC). It leverages the performance, security and scalability of WebSphere Application Server (version 6.1.0.15). In order to optimize CM server scalability performance under large user load, performance tuning on CM server is required. For hardware planning, server systems with at least four CPU cores/thread and 4 GB memory for CM server deployment on the Windows and Solaris platforms are recommended. The CM Server is implemented as one or more J2EE applications hosted in the WebSphere Application Server (WAS). CM server load balancing with WebSphere Application Server Edge component is a viable solution for increasing CM server scalability vertically. Please refer to the IBM Rational ClearCase 7.1 CM Server Load Balancing Guide with WebSphere Application Server Edge Component white paper for setup and configuration details for CM server load balancing. In addition to the CM Server load balancing with WAS Network Deployment Edge Component in Version 7.1, ClearCase/ClearQuest and CM Server load balancing can be accomplished with the IBM HTTP Server that ships with the Rational ClearCase and ClearQuest software. Rational CM high availability is supported for asymmetric (active/standby) configurations, where Rational ClearCase/ClearQuest is active on only one cluster node at a time. By default, when a customer chooses "high availability" in the questionnaire, we add a server to each tier. High availability may depend on specific customer requirements which aren't determined by the sizing. When sizing CCRC, we assume Unified Change Management (UCM) Workload Scenario and 30% contingency factor.
Product covered: Rational Host Access Transformation Services (HATS) IBM Rational HATS runs on Websphere Application Server (WAS) (a limited license copy is included). As a WebSphere application, HATS transforms 3270 and 5250 host screens. Its main prerequisite is WAS, so it requires the same hardware, OS, and software as WAS. HATS can be run on a single server, or on multiple servers. For multiple servers, the clustering capability of WebSphere Application Server-Network Deployment (WAS-ND) is required. Using WAS-ND, you can also take advantage of its deployment manager to ensure High Availability (HA). The HATS Toolkit is available as a free download. Any HATS application you create with it is limited to two connections. This means that up to two people can use the application and assess its value. Once you buy the HATS product, a key is provided (a .jar file) to allow more users. When sizing HATS, we use a 30% contingency factor to account for processor, disk, network or other unknown factors. We also project with a growth factor (generally 50%) to help with planning for the future.
https://w3.tap.ibm.com/weblogs/bills_sizing_blog/entry/websphere_portal_sizing_concurren t_users By default when a customer chooses "high availability" in the questionnaire, we add a server to each tier. High availability may depend on specific customer requirements which aren't determined by the sizing. This can range anywhere from cold or warm standby servers to highly available multi-cluster "gold standard" topologies. Our sizings determine what is required to meet the workload but may not factor these other functional requirements into the overall configuration. Non-production systems are not included in our sizings. The requirements for these are often based on business requirements as opposed to expected workload. For example, a QA server may range from being a duplicate of production down to a minimal system depending on what types of QA procedures the customer wants to have in place.
The following are excerpts from DeveloperWorks articles predominantly written by Tom Alcott, a consulting IT specialist and a member of the Worldwide WebSphere Technical Sales Support team. Links to complete articles are posted in the references section. Other authors will be noted as required. What's the minimum and maximum number of processor cores I need to run my applications?
IBM internal Use Only Page 35
Modern operating systems generally do an excellent job of process scheduling, which minimizes context switching. Context switching occurs when the operating system scheduler replaces one process operating on a CPU with another process and is the result of a variety of factors, such as job or process priority, waiting for other resources such as I/O, whether or not the process is using up all of its allocated CPU cycles (time slice), and so on. However, "excellent" in this context is not "perfect," since each time a process is context-switched it stops operating which then results in throughput delays and performance degradation. If we really wanted to eliminate the possibility of context switching, we would need to have more CPUs on a system than processes running on that system. This unfortunately isn't always practical, since few organizations can afford to put that many CPUs on one system, Moreover it is unlikely to even be necessary, since most processes don't require continuous CPU access. We should instead look at this in terms of the most important processes, which in the context of WebSphere Application Server are the JVMs for the application servers running on a system. As a starting point, plan on having at least one processor core per application server JVM; that way you have likely minimized the number of times that a context switch will occur at least as far as using up a time slice is concerned although, as mentioned, there are other factors that can result in a context switch. Unless you run all your servers at 100% CPU, more than likely there are CPU cycles available as application requests arrive at an application server, which in turn are translated into requests for operating system resources. Therefore, you can probably run more application servers than CPUs. The final number will depend on the load, application, throughput, response time requirements, and so on, and the only way to determine a precise number is to have the customer run tests in their environment. For full article see reference 2. What about the maximum number of processor cores I can use for a WebSphere Application Server instance? A very efficient and well written application can use multiple CPUs with just a single application server process. In fact, the WebSphere Performance Lab has fully utilized 12 CPUs (and in some cases more) when running tests involving the Trade performance benchmark. While it is probably not reasonable to expect most applications to be this scalable, most well written applications should be able to use more than one CPU per application server (in fact, only using one CPU is often the sign of an application bottleneck).
In general, one should tune a single instance of an application server for throughput and performance, and then incrementally add clones and test performance and throughput as each clone is added. By proceeding in this manner one can determine what number of clones can provide the optimal throughput and performance for their environment. In general once CPU utilization reaches 75% little, if any, improvement in throughput will be
IBM internal Use Only Page 36
realized by adding additional clones. For full article see reference 2. How much physical memory will I need? It is certainly reasonable to expect that you can run a higher multiple of application server instances per CPU in a development environment (where the load is likely only a single user per application server) than in a production environment. Beyond that, it is difficult to be more specific. It should be noted that adequate physical memory for all the application server processes is an equally important factor. A good rule of thumb is that the sum of all the WebSphere Application Server JVM processes should not exceed 80% of the otherwise unused physical memory on the server. When calculating the largest number that this figure can grow to, you must not only consider the maximum heap size, but also the process size of the Java bytecode interpreter (which is reflected in the OS process table) over and above the maximum heap size. The bytecode interpreter adds about 65MB to the process table (over the maximum heap size for a 128MB heap), and increases in size as does the maximum heap size does. Most products employ some simple rules of thumb in determining memory requirements. If you consider that a 32 bit JVM can consume anywhere from 1.5 GB to 1.8 GB of contiguous ram a good rule of thumb is 2 GB per JVM and weighing that against the statement above 2 GB per processor core. For full article see reference 2. Should I recommend a database or memory-to-memory replication for session failover? Performance does not differ significantly between database persistence and memory-tomemory replication. This is because 95% of the cost of replicating or persisting sessions is incurred in the serialization/de-serialization of the session object which must occur regardless of how the session is distributed. Also, as the size of the session object increases, performance degrades again, about equally for both session distribution options. Instead, the decision will be based partially on how the two technologies differ: With a database, you actually persist the data (to disk), so a highly available database server can survive a cascading failure, while using application servers as session stores and replicators for this purpose may not. In the case of a "gold standard" (two identical cells/domains), a highly available database can pretty much assure session failover between domains, while with memory to memory, there can only be a single replicator common to the two cells; hence, it becomes a single point of failure (SPOF). Thus, for configurations where cross-cell session failover is a requirement, a highly available database is the only option for eliminating a SPOF. Note that while sharing sessions across cells is supported, this is not generally recommended. By sharing state between cells, it makes it significantly more difficult to independently upgrade components (application and WAS) in the two cells. In the end, the decision then becomes based on what technology you are most comfortable with and which delivers the required quality of service for your availability requirements. For full article see reference 2.
Sizing Best Practices Guidelines IBM internal Use Only Page 37
Does memory-to-memory replication affect the amount of memory I have available? With memory-to-memory replication, the amount of session information you can store is bounded by the JVM heap size of your application server(s). Even with the advent of 64-bit JVM support in WebSphere Application Server V6.01, the maximum application server heap size is going to be significantly smaller than the amount of disk space you have available on a database server that is serving as a session store. Therefore, the leading opinion is that database persistence remains the best option, although in many organizations it is more expedient to use memory-to-memory replication to avoid conflicts over roles and responsibilities between system and database administrators. For full article see reference 2.
Should I recommend a 32-bit or a 64-bit WebSphere Application Server? 64-bit does not automatically provide better performance; in fact, most applications will see little benefit. Applications that experience the greatest benefit are: Memory constrained -- The extra memory provided by 64-bit supports a better caching strategy, enabling the application to avoid expensive queries, and so on. Computationally expensive code, such as numerical analysis, algorithms, and so on. These can, by virtue of 64-bit registers, perform computations with fewer instructions than with 32-bit registers. If the applications meet the criteria above, then you might want to recommend testing in a 64-bit environment to see if there is value. Keep in mind that those moving from 32-bit to 64-bit often see no performance benefit, and instead simply experience a larger memory footprint; this, because 64-bit addresses are twice the size of 32 bit addresses footprint. The larger memory footprint also fills up L2/L3 caching more quickly, which can have a negative impact on performance. The larger memory footprint means that your customer should plan on adding additional RAM to the server recommendation. The exact amount of additional RAM required will depend on how much RAM they are currently using and how much free memory they currently have. In some cased you will end up having to double the RAM on the server in order to run a 64-bit JVM with the same heap size as the current 32-bit JVM. As an example, one recent client was comfortably running a 32-bit application server JVM with a maximum heap of 768 MB on a system with 2 GB of RAM, but when they moved to a 64-bit JVM, they ended up going to 4 GB of RAM for the same sized application server JVM.
Page 38
You might wonder "How can a JVM with a maximum heap of 768 MB result in a process footprint of more than 768 MB? That doesn't make sense!" The heap is just one portion of the JVM, there's also the interpreter, which adds anywhere from 20% to 50% to the maximum heap size in terms of process footprint, depending on operating system, JVM, and heap size. As a result, for this customer, the 32-bit JVM with a 768 MB maximum heap that had a process footprint of ~950 MB for their hardware and software configuration, required ~1.9 GB on a 64-bit JVM -- which, with only 2 GB of RAM, didn't leave any memory for the operating system or other processes running on the system. For full article see reference 3 What about resource Virtualization? The lure of improved resource utilization is what leads to pitfalls in server virtualization. More specifically, over-committing the available physical resources -- CPU and memory -in an attempt to maximize server utilization is what leads to ineffective virtualization! In order to effectively utilize server virtualization, its paramount to recognize that underlying the virtual machines is a set of finite physical resources, and once the limits of these underlying resources are reached, performance can quickly degrade. While its important to avoid over-committing any physical resource, two resources in particular are key to effective virtualization: CPU and physical memory (RAM). As a result, it is essential to avoid over-committing these two resources. This is actually no different than in a nonvirtualized environment or, stated another way: virtualization doesnt provide additional resources. CPU over-commit In testing by the WebSphere Performance Lab and VMware, it turns out that when there was a single application server JVM per virtual machine, performance degraded once the number of virtual machines exceeded the number of CPUs; in other words, performance degraded once the number of application servers exceeded the number of CPUs. While the degradation was gradual (at least initially), once the ratio of virtual machines to CPUs exceeded 1:1, performance started to degrade more rapidly. The amount of degradation is in inverse proportion to the client workload; the lighter the client workload (meaning the longer the think time between client requests), the less the amount of degradation. If youre contemplating a CPU over-commit scenario using virtualization, then youll need to test and carefully monitor response time to make sure you dont over-commit to the point that performance degrades significantly. When testing, youll need to test all the virtual machines simultaneously and the workload should represent your peak workload, not your average workload. Otherwise, if several applications peak at the same time, you could encounter some very dissatisfied customers as the result of unacceptable response times. Its likely best to limit any CPU over-commit configurations to development environments where response time is less critical and load is light. Related to this, if youre using VMware, ESX server CPU utilization needs to be measured using ESX, not via the OS tools inside the virtual machine. This is because VMware is abstracting the OS hardware to the virtual machine, and even with VMware tools installed in the guest OS, the only way to monitor overall system CPU utilization is to use ESX.
Page 39
Memory over-commit Avoiding over-commit of the underlying physical memory between the virtual images is likely more important than avoiding CPU over-commit. While CPU over-commit typically results, at least initially, in a gradual degradation, the performance degradation associated with memory over-commit is much more pronounced (mentally picture someone falling down!!). There are a couple of reasons this is the case. When youre running Java and you over-commit on memory, either in a virtualized environment or a non-virtualized environment, the OS pages or swaps some portion of the memory associated with running processes to disk in order to improve the locality or locality of reference of the most recently used data to the CPU, and thus improves performance. Unfortunately, garbage collection in Java violates locality of reference since the purpose of garbage collection is to find and remove memory that hasnt been recently used. In order to do so, *all* memory within the JVM heap must be examined, and as a result, the entire JVM must be in physical memory (RAM). Therefore, when garbage collection runs, any portion of the heap that isnt in physical memory must be paged in, while the memory with some other processes must be paged out, all of which results in additional CPU and I/O load on the system in addition to the regular application workload and the garbage collection. Its no wonder that memory over-commit has devastating performance impacts when using virtualization, though avoiding memory over-comment in a non-virtualized environment is equally important. Be aware that memory over-commit can adversely impact performance in both virtualized and nonvirtualized environments. This often occurs because many dont realize that the process footprint of a JVM is larger than the maximum heap size. This occurs because, aside from the JVM heap where application code executes, theres an interpreter associated with each JVM. The interpreter maps the Java bytecode to the underlying OS implementation for I/O, graphics, and so on. Therefore, its important to guard against memory over-commit by monitoring the actual process footprint of your application servers using the tools appropriate for your OS, such as Windows Task Manager or free m, top or vmstat on UNIX or Linux. Other Virtualization pitfalls While over-commit of memory and CPU are likely the most prevalent problems that can occur when using server virtualization, they arent the only anti-patterns associated with this technology. If youre using server virtualization in your production environment and are concerned with high availability, then you need to make sure that you have distributed each application not just across multiple virtual machines, but that the virtual machines associated with a specific application are also distributed across multiple physical machines. Failure to do so results in a configuration where the physical machine is still a Single Point of Failure (SPOF). While modern hardware is incredibly reliable and fault tolerant, that doesnt preclude a hardware failure resulting in the loss of all frames (hardware partitions) on a machine and, in turn, a total loss of application availability. Another potential friction point when using server virtualization occurs when application virtualization is in use. Both these technologies provide for autonomic adjustment of various resources; CPU and memory in the case of server virtualization, application server instances, workload, and so on, in the case of application virtualization. In order to avoid conflicting decisions between server virtualization and application virtualization, the response cycles associated with each should be configured to steer clear of conflicts. Most often this requires lengthening cycle times or disabling some of the functions
Sizing Best Practices Guidelines IBM internal Use Only Page 40
Page 41
If you are satisfied as the result of a discussion with your disk provider that the device on which one which the log is located can assure write integrity, then use SingleWrite for best performance. If you change the value, you must restart the queue manager to bring the change into effect.
Page 42
Type of logging
WebSphere MQ provides two types of logging which are known as circular and linear. When using circular logging log file extents are reused once they no longer contain active log data. When using linear logging on the other hand log file extents will be continually allocated as required. Once a log is no longer used it then becomes available to be archived. If you need to be able to forward recover queue data following a failure or recover from media failure of the device containing the log you must use linear logging if you are dependent on WebSphere MQ to provide this level of protection for you. An alternative strategy is to use disk mirroring to mirror the log device. This is often a facility provided by a SAN. In this case you could use circular logging. For performance choose circular logging. Circular logging is the default option when creating a queue manager. The same considerations apply to both the Windows and UNIX environments when specifying the type of logging. Use the lc option on the crtmqm command to specify circular logging, and the ll option to specify linear logging. Although the type of logging can be specified in the qm.ini file of the queue manager, changes made there will not result in a change in behavior, as the type of logging cannot be changed once a queue manager has been created.
As long as you have the disk space you are recommended to allocate the maximum size.
manager will resort to backing out uncommitted Units of Work. Given this behavior ensure that there are a reasonable number of secondary extents. The number of log extents can be specified on the crtmqm command using the lp flag for primary extents and ls flag for secondary extents or by using the LogPrimaryFiles and LogSecondaryFiles values in the Log stanza of the queue manager. For Windows the Log stanza entry of a queue manager is located in the Windows registry. On UNIX the Log stanza is located in the qm.ini configuration file of the queue manger. The minimum number of primary log files you can have is 2 and the maximum is 254 on Windows, or 510 on UNIX systems. The default is 3. The total number of primary and secondary log files must not exceed 255 on Windows, or 511 on UNIX systems, and must not be less than 3. Operating system limits can reduce the maximum possible log size. The number of extents needed depends on the amount of data to be logged and the size of each extent. A practical starting point could be values of LogPrimaryFiles=10 and LogSecondaryFiles=10.
Page 44
Page 45
as a non Fastpath or standard application an agent process called amqzlaa provides the separation between the MQ application and queue manager. In this case there is greater separation between the application and queue manager but at the cost of a performance overhead. As channels are WebSphere MQ product code and as such are stable you can freely run channels as trusted applications. There are a couple of considerations to bear in mind: If channel exits are used you may wish to reconsider running the channel as a trusted application as there is the potential for the exit to corrupt the queue manager if the exits are not correctly written and thoroughly tested. If you use the command STOP CHANNEL(TERMINATE) you should also reconsider running the channels as trusted applications. If your environment is unstable with regular component failure you may also wish to reconsider running the channels as trusted applications. To make the channels run as trusted there are two options. Specify a value of MQIBindType=FASTPATH in the Channels stanza of the qm.ini or registry file. This is case sensitive. If you specify a value that is not valid it is ignored. See below for how to do this for the Windows and UNIX environments. By choosing this option all channels within the queue manager will run as trusted. Set the environment variable MQ_CONNECT_TYPE to a value of FASTPATH in the environment in which the channel is started. Ensure that the setting MQ_CONNECT_TYPE=FASTPATH is present as an environment variable. This is case sensitive. If you specify a value that is not valid it is ignored. You are recommended to use only one of the options.
Page 47
Additional Information
Power Systems Documentation http://publib.boulder.ibm.com/eserver/?topic=/iphc5/systemp_systems.htm
eConfig: http://ftp.ibmlink.ibm.com/econfig/announce/index.htm
Techline Support via.. Email: Send email sizing request to Techline@us.ibm.com with specifics Voice: 1-888-426-5525 (follow prompts for software application or platform)
Page 48
WLE Education Walkthru http://www-912.i bm.com/wle/EstimatorServlet Click on Help/Tutorials tab Click on specific WLE sessions under Tutorials group
Page 49
References
[1] The WebSphere Contrarian: Effectively leveraging virtualization with Application Server Author: Tom Alcott http://www.ibm.com/developerworks/websphere/techjournal/0805_webcon/0805_webcon.html
[2] Everything you always wanted to know about WebSphere Application Server but were afraid to ask Author: Tom Alcott Part 1, June 2005 Part 2, December 2005 Part 3, June 2006 Part 4, December 2006 Part 5, July 2007
[3] Know your WebSphere Application Server options for a large cache implementation Author : Tom Alcott http://www.ibm.com/developerworks/websphere/techjournal/0801_alcott/0801_alcott.html
Page 50
Feedback
Please send questions or comments regarding the content of this document to Gail Titus, Global Techline Center of Excellence ISV Sizing Team at gtitus@us.ibm.com.
Page 51