Archive for October, 2007

330 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY (Ecommerce web host)

Wednesday, October 31st, 2007

330 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING IS, marketing, and events coordinators, as well as industry insight that can be attained by reviewing publications, attending tradeshows and Webinars, and your own research into technology. The results of the forecasting process are documented forecasts that will be used to feed capacity planning efforts. Capacity Planning Capacity planning is the reaction to forecasts to ensure the integrity of business processes. Constructing models of the behavior of your environment, analyzing historical data to identify trends, and applying communication channels and industry insight to those trends to construct forecasts would be completely fruitless if you did not take proactive measures to avoid performance failures. The actual process of capacity planning can be broken into the following three phases: 1. Analysis of forecasts 2. Capacity assessment 3. Capacity plan Forecasts project trends in threats to your business processes, such as reporting that the current thread pool utilization is following an upward trend that will lead to a degradation of response time during the Christmas holiday season. The capacity planner must make a recommendation to the business about how to mitigate this risk and uphold SLAs during the affected period. As a result, the capacity planner may analyze the other metrics in the system, such as the CPU utilization in this case, to determine whether a simple configuration change is enough to avoid the issue or whether deeper analysis is required. Regardless of the methods employed, the result of this phase should be a plan that will be validated by a capacity assessment. We have seen the steps that are performed by a capacity assessment, and although the mechanism is the same, the motivations behind performing a capacity assessment as a capacity planning phase differ from those behind performing the assessment to gauge the impact of forecasts on the environment. The motivations in a capacity planning phase are twofold: Validate the business impact of forecasts Test the impact of the analysis results In other words, are the forecasts consistent with observations of the environment under specific scenarios? And can making a specific change to the system avoid the business impact? Forecast analysis and capacity assessment validations are an iterative process, comprised of the following steps: 1. The forecast suggests that behavior A will negatively affect the performance of transactions B and C. 2. Analyze the forecast in light of the observed behavior of the capacity assessment. 3. Try configuration modifications and perform another capacity assessment. 4. If the problem is not resolved, then either upgrade the environment or go back to step 2.
Please visit Domain Name Hosting services for high quality webhost to host and run your jsp applications.

CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING (Disney web site)

Tuesday, October 30th, 2007

CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING load. Therefore, you need to be cognizant of your marketing efforts as well as industry events to attempt to project their impact on your user load. Failure to do so will invalidate your extrapolated trend-based forecasts. In summary, effective forecasting is a combination of accurate trending, open communications, and industry insight. These factors are summarized in Figure 12-3. Figure 12-3. The forecasting process accepts trends, communication, and industry insight as inputs and outputs documented forecasts. From Figure 12-3, you can see that trends are built from an analysis of four components: usage patterns, heap usage patterns, resource utilization patterns, and response time patterns. The transformation of trends into forecasts involves open communications with development,
Searching for affordable and proven webhost to host and run your servlet applications? Go to Linux Web Hosting services and you will find it.

Cedant web hosting - 328 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY

Monday, October 29th, 2007

328 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING underlying persistence engines are substantially different between J2EE 1.4 entity beans and Java EE 5 entity beans, you do not recommend a hardware upgrade to the database to support a dying technology. You were able to make this realization, because you were communicating with development and abreast of their plan, and you were familiar with the technology. Some of the external factors that you need to be cognizant of when forecasting trends can be summarized as follows: Technology changes Natural growth Targeted growth (marketing promotions, tradeshows, Webinars) Technology changes can include upgrades to application servers, operating systems, and underlying hardware, as well as changes anywhere in the technology stack of any external dependency that the application interacts with significantly, such as a database. For the purposes of this discussion, we define environmental technology as major, third-party provided or thirdparty purchased technologies, such as application servers, databases, and hardware. Aside from environmental technology changes, internal technology changes must also be considered, such as the development team replacing TopLink with Hibernate or using a different logging library. These applications are considered internal technologies, because although they are provided by a third party, your applications make use of them directly, and their performance will depend greatly on your application s use of them. The distinction between internal and external technologies is not always black and white, but generally, classify infrastructure as external, and code-level technologies as internal. When either of these changes is scheduled, it can greatly affect extrapolated trends, and as the person responsible for developing accurate forecasts, your role is to understand the impact of such technical decisions and incorporate that understanding into your forecasts. As the previous example stated, this role requires the following two things from you: Open communication with the technology groups in your organization, including both the development team and Information Services (IS) Deep industry knowledge and research into popular technologies Natural growth, the second external factor to monitor, is a sustained increase in user load. Users may be employees hired by your company that will be using your intranet application or shoppers on your e-commerce site who become regular customers as the result of a coupon that you sent to them. The point is that natural growth denotes an increase in user load that can be expected to be sustained for the foreseeable future. Any increase in user load is going to affect the performance of your applications, and most trends begin with the extrapolation of changes based on additional users. For example, the response time of a particular request is 4 seconds with 500 users, and with a good mathematical model representing the response time patterns, we expect the same request to take 4.5 seconds with 550 users. Notwithstanding any external influences such as technology changes or marketing promotions, natural growth represents the clearest factor in establishing forecasts. Targeted growth is characterized by short-term spikes in user load based on some event, such as a new marketing campaign, targeted promotion, tradeshow, Webinar, or seminar. When your company proactively seeks additional users, some of them may move into the natural growth bucket and become customers, but you can, nonetheless, expect a spike in user
If you are in need for chaep and reliable webhost to host your website, our recommendation is http web server services.

Personal web server - CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING

Sunday, October 28th, 2007

CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING Average, or mean, response time Maximum response time Total response time Standard deviation The mean response time is important to quantify, because it represents your end-user experience. But when things go wrong in the application, the response time deviation is even more important to identify, because it reveals how wrong things have gone and helps to diagnose why. The maximum response time also lets you know if you have violated any of your SLAs. The total response time for a particular time segment reveals how important that particular request is to the business it indicates which requests have the greatest impact on your environment. While the first three metrics are obviously important, most people tend to ignore the last one: the standard deviation of service request response time. The standard deviation tells you how much distribution of response times varies. If, for example, the average response time for a request is 4 seconds with one standard deviation of .2 seconds and two standard deviations of .5 seconds, then you know that the majority of your users are experiencing a response time between 3.5 and 4.5 seconds. On the other hand, if the average response time is 4 seconds, but one standard deviation is 2 seconds and two standard deviations equals 5 seconds, then you know that, although in general the response time is acceptable, a great number of users are experiencing poor performance. The average response time can be deceiving sometimes without knowing the distribution pattern of response times, and the standard deviation provides you with that insight. Once you have a strong understanding of these metrics for your requests for distinct time periods, such as every hour, every day, and every week, then you are ready to perform historical analysis against these metrics over time to try to identify trends. A common situation that I encounter during these exercises is a slight degradation of response time over several months as user load increases, but an increase in the standard deviation. So while the average response time may only increase from 4 seconds to 4.5 seconds, the number of users experiencing that reasonable response is becoming fewer and fewer. Usually before the response time for a particular request degrades substantially, the distribution of response times becomes increasingly volatile. The effective analysis of service request response times is the key to ensuring your SLAs. With the right methodologies and processes in place, you should be able to identify trends in response time and resolve their root causes before users are affected. Forecasting Forecasting begins by extrapolating trends to the point that they impact business functions and then applying additional business domain expertise to the trends to better understand their impact. Trending can be easily taught, and when performed frequently and methodically, it can become a very fruitful exercise, but proper forecasting can only come through experience and deep industry insight. For example, when building Java EE applications, the development team may be replacing J2EE 1.4 entity beans with Java EE 5 entity beans. The trends might extrapolate to excessive database interactions in three months, but because you know that the
If you are looking for affordable and reliable webhost to host and run your business application visit our ftp web hosting services.

326 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY (Professional web hosting)

Saturday, October 27th, 2007

326 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING Analyzing resource use for trends is important because of the following specific reasons: Thread utilization identifies the number of simultaneous requests that are being processed as well as the throughput of the application. If the thread pools are sized too large, then the system could become saturated as the CPU wastes too much time context switching between the threads. If the thread pools are sized too small, then incoming requests will have to wait for an execution thread to process them, and therefore both response time and throughput will degrade. Connection pools control the number of simultaneous threads that can access a resource such as a database. If they are sized too large, then the resource experiences an extra burden, and the application server loses the memory required to maintain them. If they are sized too small, then execution threads may be forced to wait for a connection to be returned to the pool, and as a result, response time will degrade. Object pools, such as stateless session bean and message-driven bean pools, face a similar dilemma. If they are too large (greater than the size of the execution thread pool), then the application server must maintain additional unused resources. If they are sized too small, then execution threads may be forced to wait for an object to be returned to the pool, and as a result, response time will degrade. Caches can be more difficult to analyze and detect trends for, but they are incredibly important to the performance of your application. A properly sized cache can increase the performance of your application dramatically, while a poorly sized one can have the opposite effect. A cache that is sized too large can unnecessarily occupy a significant amount of memory, while a cache sized too small can thrash and add significant cache-management overhead to the response time. The CPU is probably the easiest resource to analyze, because your process CPU utilization can be quantified by a number. During peak times, very low CPU utilization may mean that your environment is oversized, causing added expenses for excess application server licenses, support staff, hardware, hardware support licensing, network devices, and so forth. But if the CPU is saturated, then the server spends more time accomplishing less, resulting in degraded response times. The point in analyzing these resources and identifying trends in their behavior is to ensure that your environment is currently running optimally as well as to serve as a foundation upon which to construct forecasts that predict when resource configurations need to change or when new resources need to be added. Response Time Patterns While we have looked at usage patterns and environmental patterns such as the heap and other resources, the most important trend to identify from a business impact perspective is the behavior of service request response times. All other trends help manage the environment in hopes of mitigating their impact on response times they serve as early warning indicators to preserve the integrity of your SLAs. Response time patterns should be monitored similarly to resource utilizations, but rather than creating a model that identifies outlier behavior, quantifying the weak points in the response times is more important. We look at four specific metrics with respect to response time:
If you are in need for chaep and reliable webhost to host your website, our recommendation is http web server services.

CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING (Web server)

Friday, October 26th, 2007

CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING as marketing activities and promotions, to determine whether model trends are the result of these factors, and hence temporary, or whether they present a long-term problem. Finally, when trying to understand the cause of a daily trend, always perform a sanity check by identifying changes in user load: more users will almost always increase resource utilization. Weekly models examine resource utilization behaviors during the course of your standard business week. Again, the demarcation of a business week is dependent on your business. As an example, an online retailer may observe a significant increase in user load, and hence increased resource utilization, on Saturdays and Sundays when people are home from work. Or the site might experience a spike in utilization on Friday afternoons when its customers are bored at work and pass time browsing the online store. Regardless of the cause of a weekly anomaly, the goal is to identify special behavioral periods throughout the week and trace those behaviors back historically to determine any trends in that behavior. Monthly trends, which may or may not be applicable to your environment, serve to examine resource utilization behavior during the course of a month. For example, consider the impact of paydays on an online retailer. Online retailers might have spikes in activity on the 15th and 30th of the month, on the 10th and 25th, and on every Friday (covering people paid every other Friday). If these spikes in activity exist, then you need to identify them and compare them to historical data to identify trends that may exist as results of increases in specific sets of application functionality. In the payday scenario, use of the application s catalog browsing functionality may increase a day before a payday, and online purchases may increase on the payday itself. Both of these activities execute separate paths of the application code, and thus may use resources differently: browsing may make more database queries, while purchasing may use more session space and interact with a third-party merchant for payment verification. Finally, annual models and trends examine the behavior of resources throughout the year. They attempt to predict when user load is the highest; for example, an online retailer in the United States may experience the most load between the day after Thanksgiving and Christmas Eve. Analyzing these behaviors is important, so that you are prepared to maintain SLAs during these peak usage periods. Annual trends are typically the easiest to analyze, because the time periods are so great between events, but for the same reason, their accuracy when moving into forecasting is inconclusive if you have less than five or ten years worth of data. Note When time differences are too great between measurements, and you have very few measurements, forecasting is usually not fruitful. Consider this scenario: have you ever tried to start a business? To do so, you construct a business plan, and as part of that plan, you build one-year, three-year, five-year, and sometimes seven-year projections defining the future of your company. Most companies do not make it to seven years (actually, most do not make it past the first year), but if they do, their financial state in seven years is almost certainly not in line with their initial business plan projections. However, if the time difference between measurements is short with respect to the life of the company, and you have a significant number of measurements, then the forecasts can be trusted. Consider a U.S. retail company that has been in business for ten years: it can trace its Christmas season growth patterns over a decade and very accurately predict what will happen in the following year.
From our experience, we can recommend PHP Web Hosting services, if you need affordable webhost to host and run your web application.

Web server type - 324 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY

Thursday, October 25th, 2007

324 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING In addition, you should include any other significant resource in your environment. For example, several of my larger IBM WebSphere clients use the MQSeries messaging infrastructure to communicate with a mainframe. In this case, the mainframe performance and the ability of MQSeries to transfer messages between the application server and the mainframe are both key to the performance of the application. MQSeries includes performance metrics such as message time in a queue, queue depth, and thread pool utilization. The methodology is to construct a model for each of these metrics that describes its current and historical behavior and then review the resource s history to discern any patterns. The difficult part is that you need to build daily, weekly, monthly, and annual models, and then look back at the historical data to determine if any trends exist against those models. For example, consider the following scenario, identified by analyzing the CPU utilization of an application server: every nonholiday business day over the past month, the CPU has been running at 65 percent utilization between 8:00 AM and 9:00 AM (part of the daily model). If this is the case, then how was the CPU performing three or six months ago? Furthermore, what is the pattern of behavior between six months ago and today? Does this pattern present a valid trend, or are your observations part of a monthly or annual model? Assume that this example is an intranet application in which users log in between 8:00 AM and 9:00 AM, and for which the only annual patterns that affect user utilization are user vacations, so the fluctuations are minor. Looking back six months ago, the CPU was at 30 percent for the time period in question, and during the last six months, the staff increased by 10 percent. This type of utilization increase will have an impact on the CPU, but it should not cause CPU utilization to nearly double. The CPU utilization growth pattern was relatively flat until four months ago, when it mysteriously increased by 25 percent and gradually increased another 5 percent, until it reached its current 65 percent utilization. Looking back at changes that occurred four months ago, we learn that the authentication mechanism was upgraded from a basic, file-based authentication to an LDAP server. Furthermore, the entire staff increase occurred between four months ago and today, accounting for the additional 5 percent increase. By defining an annual CPU utilization model, we knew that this change in behavior was not because of seasonal changes throughout the year. By defining a weekly model, we learned that CPU utilization was slightly higher on Monday and slightly lower on Friday, but the changes were global and did not change any weekly pattern. The daily model demonstrated conclusively that the 8:00 AM to 9:00 AM CPU utilization increased consistently, regardless of all other trends. And finally, the trend analysis pointed to the time frame that caused the problem. Define the following models for each resource: Daily Weekly Monthly Annual Daily models examine resource utilization behaviors during your standard business days. If you run an e-commerce site, then every day is a business day, but if you maintain an intranet application, then your business days might be Monday through Friday. The goals of defining this model and analyzing its historical behavior are to identify peak daily usage times and detect large-scale and global changes that affect the performance of your environment. Daily models and trends need to be carefully analyzed against business environmental factors, such
Note: If you are looking for cheap and reliable webhost to host and run your mysql application check mysql web server services.

CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING (Domain and web hosting)

Wednesday, October 24th, 2007

CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING Figure 12-2. This heap is slowly trending upward, which is evident by looking at the low usage growth pattern (the valleys). Figure 12-2 presents a heap that is trending upward. The shaded area shows the range of the heap while the lines demark the low and high utilization of the heap for that sampling interval. The lower mark shows the amount of heap that the JVM was able to make available to the application in the sampling interval. By observing the heap over time, you can see that the JVM is losing memory. In this situation, I would observe the heap over a much longer time interval, which can range from several hours to several weeks, depending on the behavior of the heap, to see if the heap utilization levels off or if it eventually runs out of memory. Note If you are using a Sun JVM, you have a more definitive mechanism to detect a memory leak: analyze the growth pattern of the old generation partition of the heap. Recall that the new generation is where objects are created and short-lived objects are destroyed, while the old generation is the home for long-lived objects. Leaked objects are, by definition, long-lived, so they will consume the old generation until they exhaust the memory. Therefore, looking at the growth pattern of the old generation, rather than the entire heap, is more conclusive. Resource Utilization Patterns In addition to measuring heap utilization and garbage collection rates, you want to construct a model that represents your other resources. Specifically, you want to include analyses of the following metrics: Thread pools Connection pools Object pools Caches CPU
We would like to recommend you tested and proved virtual web hosting services, which you will surely find to be of great quality.

322 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY (Yahoo free web hosting)

Tuesday, October 23rd, 2007

322 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING Figure 12-1. Because the application calls get() on the Collections class, a new reference is returned to the application. When the application discards the reference, the Collections class continues to maintain its reference to the object; hence, the object cannot be garbage collected. Memory leaks are typically subtle and may take days or even weeks to crash an application server. In order to detect a potential memory leak, you need to analyze your heap utilization, specifically the heap utilization valleys. As objects are created and destroyed, the heap utilization oscillates, so its utilization has peaks and valleys. If the valleys are consistently increasing, then the application is allocating more memory than it is freeing, and you can draw one of the following three conclusions: The application is approaching its steady state, and the increasing trend is just indicative of natural growth. Your heap is too small to support the requirements of the application; the heap should eventually level off, but your heap is too small to do so. You have a memory leak. Figure 12-2 illustrates the behavior of a heap that might be experiencing a memory leak.
Visit our web design programs services for an affordable and reliable webhost to suit all your needs.

CHAPTER 12 TRENDING, (Personal web server) FORECASTING, AND CAPACITY PLANNING

Monday, October 22nd, 2007

CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING Heap Usage Patterns Throughout this book I have been emphasizing the importance of heap tuning: your application runs inside your heap, and a poorly tuned heap can destroy the performance of your application. Therefore, generating a profile of your heap behavior and performing a trend analysis on its behavior are important. Remember that the behavior and tuning of your heap are directly related to your usage patterns: changes in usage patterns may necessitate a retuning of the heap. The heap trend analysis that we perform includes the following: Heap configuration behavior Memory leaks Heap configuration behavior includes both heap utilization and garbage collection behavior. Every application has a certain number of objects that it needs to maintain in memory to support its user load. This includes pooled and cached items as well as user session information. Your goal under normal load is to maintain a heap utilization of about 70 percent. This percentage provides you with enough memory to support peaks in usage but not so much that its size burdens garbage collection. Garbage collection behavior tracking includes the frequency, type, and duration of garbage collections. You want to know how frequently stop-the-world garbage collections run and how long they take. Furthermore, you want to know how frequently minor collections run and how effective they are (for example, how much memory are they able to reclaim?). When you know the current heap utilization and the frequency and duration of each type of garbage collection, the next step is to analyze the historical performance of these metrics to identify trends. For example, three months ago the heap was at 65 percent utilization, but today it is at 80 percent utilization. Furthermore, major garbage collections were running every 30 minutes, and now they are running every 15 minutes. The pattern between these changes has been a steady linear growth in proportion to an increase in user load. In this scenario, user load has added additional overhead on the heap, and the heap needs to be resized and potentially retuned. Proactive attention to heap configuration trends can mitigate many performance problems. Your proactive analysis needs to be performed frequently and methodically. A memory leak is one of the biggest problems in Java EE applications. Java s garbage collection eliminates standard C++-style memory leaks caused by allocating and dereferencing memory: the garbage collector reclaims all memory that has been dereferenced when it needs additional memory. Because all Java object variables are created on the stack and reference physical objects on the heap, each object has a reference count associated with it. When its reference count reaches zero, the object can be reclaimed by the garbage collector. However, if you are maintaining an inadvertent reference to an object, then the garbage collector cannot free it. One of the biggest causes of memory leaks in Java is the misuse of Java Collections classes. A Collections class is a data structure that acts as a container for objects and, as such, defines a reference to each object. Programmers commonly retrieve an object from a Collections class, use it, and discard it when finished, thinking that the object can be garbage collected. But because they did not explicitly remove the object from the Collections class, the Collections class continues to maintain a reference to the object. In this scenario, a lingering reference to the object remains, and its memory cannot be reclaimed until the object is explicitly removed from the Collections class. Figure 12-1 illustrates this lingering object reference graphically.
Go visit our java server pages services for a reliable, lowcost webhost to satisfy all your needs.