340 likes | 434 Views
Amy Edwards, Ezra Freeloe and George Hernandez University System of Georgia 2007. Capacity Planning and Predicting Growth for Vista. Capacity planning.
E N D
Amy Edwards, Ezra Freeloe and George Hernandez University System of Georgia 2007 Capacity Planning and Predicting Growth for Vista
Capacity planning... is the process of determining the production capacity needed by an organization to meet changing demands for its products. In the context of capacity planning, “capacity” is the maximum amount of work that an organization is capable of completing in a given period of time. http://en.wikipedia.org/wiki/Capacity_planning
In information technology... capacity planning is the science and art of estimating the space computer hardware, software and connection infrastructure resources that will be needed over some future period of time. http://searchdatacenter.techtarget.com/sDefinition/0,,sid80_gci1082579,00.html
We should not, but often do... simply guess at the capacity requirement, then overbuy servers to ensure that there will always be sufficient processor power.
Three Steps... Determine Service Level requirements, categorize the work done by systems and quantify users' expectations. Analyze Current Capacity, and how the needs of the clients are being met. Predict future activity, and plan future system requirements needed to maintain service levels.
1. Determine Service Level Requirements: Determine workloads, a logical grouping of work performed (who, what or how). Define units to measure workload (clients served, total transactions or processes). Decide on a level of performance which defines acceptable service (number of requests processed per unit of time, overall response time or throughput)
2. Analyze Current Capacity Measure any items in current SLA. Measure system resource usage (CPU, memory, I/O, etc.) Map resource utilization to workloads. Determine which system resources are responsible for the greatest portion of the response time for each workload.
3. Predict future activity and plan Determine future processing requirements. Expected usage growth Implementing upgrades Requests for new services Hardware replacements Plan future system configuration.
Determine workloads Identification of components client/server performance Web server performance Database server performance Network performance * Performance is defined at the end-to-end response time for components of your infrastructure that impact the end user's perception of response time.
Define workload units Measure utilization rates for the platforms and servers that make up the application. Application sessions, servlets, JVM, EJB, JDBC, storage. Server CPU, memory, load, I/O, disk space Network bandwidth, types of traffic (multicast, http, ifs, sockets), load balancers, firewalls.
Workload example Formula: Total Sizing = Overhead + (Workload * Factor) * Overhead is everything else * Factor is how much the workload has changed. Example of HTTP workload CPU usage: If Current CPU data: 15% (10 %usr + 5 %sys) And OVERHEAD is 5% total usage And the Growth Factor is 5 Predicted CPU Usage: 80% = 5% + (15% * 5)
Workload example continued Example of mixed workload: DB Workload 45% (35 %usr + 10 %sys) HTTP Workload 15% (10 %usr + 5 %sys) OVERHEAD is 15% total usage Total Usage = 75% Growth Factor for BOTH is 2 Predicted CPU Usage usage is 135% = 15% + (15% * 2) + (45% * 2)
WebLogic Application Servers Server CPU, memory, load, I/O, disk space Number of sessions, servlets, JVM, EJB, JDBC Processing multicast traffic, http connections, ifs users, open sockets Unique actions (GC, SIAPI/IMS, backups, restores, uploads, downloads, JMS and administrative node connections)
Weblogic Application notes Use verbose garbage collection to measure how much time and resources are used during garbage collection. Storage for SSL and other local transactions (backups, uploads, downloads, logs, dumps) SSL protocols require three times the CPU as non-SSL connections. SSL can reduces the capacity of the server by about 33 to 50 percent. Session objects are tracked in memory, either to RAM or swapping to disk. As concurrent sessions increase Java will need more RAM for the Java heap. Maximum number of user interactions per second.
Active vs Total Users * Active users is the number of unique users actively using the system. * Total users is the total number of unique users on the system.
Database Servers Server CPU, memory, load, I/O, disk space Number of connections ifs users Open sockets Unique actions (SIAPI/IMS, backups, restores, uploads, downloads)
Oracle database notes Number of processes and shadow processes. Shared pool, part of SGA, caches data for the library cache and the dictionary cache. Maximum opened cursor. Sort area size. Increasing the sort area increases the performance of large sorts by allowing them to be performed in memory during query processing. Storage and growth Database server's CPU, load memory and I/O usage
Network Network bandwidth (multicast traffic, http connections, ifs users, open sockets) Load balancer (SSL, iRules), firewalls
Network notes A WebLogic server handling programmatic clients should have 125 to 150 percent the bandwidth that a server with Web-based clients would handle. You can assume that each 56kbps (kilobits per second) of bandwidth can handle between seven and ten simultaneous requests. In a WebLogic cluster, in-memory replication of session information information for servlets and stateful session EJBs is the biggest consumer of LAN bandwidth. Large clusters performing in-memory replication of session data for EJBs or servlets require more bandwidth than smaller clusters.
Performance Modeling Predictions based on expected amount of incoming work base on requirements for implementation trends in historical data of incoming work
References The Art of Capacity Planning. 18 Nov 2002. Arunabh Hazarika, Srikant Subramaniam. http://dev2dev.bea.com/pub/a/2002/11/Hazarika.html BEA Weblogic Server 8.1 Documentation: Capacity Planning. http://edocs.bea.com/wls/docs81/capplan/index.html
Terms Enterprise JavaBeans (EJB) Java Virtual Machine (JVM) Java servlets (servlets) JavaServer Pages (JSP) Kilobits per second (kbps) Remote Method Invocation (RMI) Secure sockets layer (SSL) Transactions per second (TPS)