Archive for October, 2007

320 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY (Web design seattle)

Sunday, October 21st, 2007

320 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING Once you have the means to identify requests and their associated business processes, you need to construct a model with that data that identifies the following information: Peak usage patterns Average usage patterns Service request distribution The model needs to be hierarchical to allow you to aggregate user load over time daily, weekly, monthly, seasonal, and annual behavior. You need to gather data for at least two or three weeks to identify daily trends, and two or three months to identify weekly trends. From this model, you want to garner a deep understanding of when your peak user loads occur and what your users are doing specifically at those times. Are users activities during peak load the same as during average load? If so, then your tuning efforts are greatly simplified; tune your environment using load simulating peak usage, and the average case will be satisfied too. On the other hand, if your peak user load activities are not representative of average load activities, such as the case of peak user load executing a strong imbalance of searches over shopping cart management and check out functionality, then you need to tune your environment to satisfy both activities. The best strategy if your system is significantly underutilized is to generate both loads simultaneously and tune the environment. But if your environment is close to saturated, which is typical of environments that I encounter, then things are not so easy! At this point there are two realizations that you have to make: I need to satisfy users at peak times. I need to satisfy average user patterns. Sounds simple enough, right? In this case, performing a full tuning exercise of the environment under peak usage patterns is best. When the environment can satisfy that usage, start from that configuration and perform a full tuning exercise with the average usage patterns. Be sure not to decrease anything in the second tuning exercise that you needed to support peak users, but because you are methodically following a process, this level of tuning is attainable. Given this background in analyzing usage patterns and tuning your environment to satisfy different usage scenarios, let s turn our attention more specifically to trending. Recall that trending is the analysis of data to identify discernable patterns. In usage pattern trending, our goal is to use significant identified changes in user behavior throughout the day, week, month, and season to follow that pattern historically. For example, if a daily pattern for an intranet application reveals that 500 users log in to your application between 7:45 AM and 8:15 AM on average, what was that daily trend last month, last quarter, or even last year? Did that pattern exist then? If so, has it changed over time? Six months ago, did the same pattern exist, but for only 300 users? Follow this analysis back through your data to see if you can quantify the changes. For example, you might determine the peak user login pattern has been experiencing linear growth week after week for the past year, with a 10 percent increase in user load every month. The point is that you first need to define a model, or profile, for your user behavior and then trace that model s history to identify changes in it. These changes represent trends in usage patterns.
Check Tomcat Web Hosting services for best quality webspace to host your web application.

CHAPTER 12 (Web hosting isp) TRENDING, FORECASTING, AND CAPACITY PLANNING

Saturday, October 20th, 2007

CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING Usage Patterns Usage patterns are tracked through both raw usage and request distribution; changes to either can disrupt the balance that you have worked so hard to establish. Raw usage describes the requests that users are executing, and request distribution means the frequency with which users are executing those requests. Recall one of the key tenets of the performance tuning methodology presented in this book: the effectiveness of your tuning efforts is only valid if your load test scripts accurately represent user behavior. For example, if your users perform actions A, B, and C, and you tune your environment to support X, Y, and Z, then you can have no confidence that your application will be able to satisfy its SLAs. Changes in usage patterns therefore affect the performance of your environment and must be captured and analyzed very carefully. One of the more challenging parts of analyzing usage patterns is the great variation in user load and behavior throughout the day, week, and year. For example, an intranet application probably has a significant spike in load at 8:00 AM or 9:00 AM when users start the day. Furthermore, the login functionality is strongly exercised in the morning but then dies off throughout the day. In a business-to-consumer application, user load may be strongest during lunch hours and after work on a daily basis, but throughout the year, the load may spike with seasonal shoppers (for example, in the United States the consumer retail business is greatest between the Thanksgiving and Christmas holidays). And a business-to-business application may experience significant user load during normal business operation hours, but nothing over the weekend. The point is that knowing your users individual requests is not enough you need to identify usage peaks and abnormal behaviors and ensure that you can effectively handle them. You can use the following two primary mechanisms for obtaining these usage patterns: Access logs User experience monitor Most Web servers can be configured to record the URL for each requested Web page to a log file. For example, if your application is using the Apache Struts Action Framework, each piece of business functionality is partitioned into its own unique and identifiable request. Based upon the structure of your Web requests, this log file may provide you with enough information to identify business processes. But for business functions that are not discernable from an individual request or for which a single request implements multiple business functions, you need a deeper analysis tool than simple access logs. For deeper analysis, you can obtain a user experience monitor. A user experience monitor is hardware (another computer) that sits on your network, very close to your load balancer, and sniffs all Web traffic as it passes to your Web servers. Because this device captures traffic as it passes across network switches, it does not inflict any performance overhead, and it can be configured to look deeper into requests than access logs to identify business functionality. For example, if your application implements a Front Controller servlet design pattern and differentiates business processes by Web parameters passed to the same request, a user experience monitor can be configured to analyze its data based on the Web parameters that you specify for that request. Furthermore, regardless of the structure of a Web request (for example, whether you can determine the functionality by the request alone or only by obtaining a deeper level request context), a user experience monitor can allow you to define business functions and processes by the requests that implement them. Access logs focus on requests, but a user experience monitor focuses on your business.
We would like to recommend you tested and proved virtual web hosting services, which you will surely find to be of great quality.

318 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY (My space web page)

Friday, October 19th, 2007

318 CHAPTER 12 TRENDING, FORECASTING, AND CAPACITY PLANNING The terms trending, forecasting, and capacity planning are sometimes used interchangeably, but the following definitions show the distinctions between them: Trending is the analysis of data with the intention of identifying discernable patterns. Forecasting is the projection of those identified patterns on business growth patterns to understand the impact on business processes. Capacity planning is the response to forecasts that ensures the integrity of business processes. More plainly stated, first we analyze data and look for trends. Next, we make projections against those trends, in combination with the knowledge of our business domain, to forecast the impact of those trends against our business processes. Finally, we respond to those forecasts by developing a plan to mitigate risk and ensure the integrity of our business processes. Trending is a science; forecasting is a methodology; and capacity planning is an art. But with a solid understanding of the activities that are performed during each, the process is not insurmountable. Trends Trends can be identified in almost any area in an enterprise environment, but the subset of data that we focus on in this chapter, for practical purposes, includes the following: Usage patterns Heap usage patterns Resource utilization patterns Response time patterns When looking at usage patterns, look for changes in user behavior that may negatively affect the performance of the environment or may change the way that applications interact with their platform, requiring a retuning of the platform. Because all objects are created in the heap, and garbage collection can freeze all threads when it runs, heap utilization and garbage collection behavior greatly affect performance. Therefore observing the behavior of the heap over time is important to ensure that as usage patterns change the heap remains optimally tuned; the optimal tuning will change to suit usage behavior. As your application runs, it makes use of application server and system resources. Your resource usage patterns cause different behaviors in your application that affect the way that your application makes use of these resources, so tracking these resources to discern when your usage patterns cause resources to become saturated is important. The final key trend to watch is the pattern of response time patterns. Average response times are generally tracked, but you can learn a great deal by observing the distribution of response times; variations in response times can be leading indicators of future problems. For example, while the average response time may remain relatively constant, a significant change to the standard deviation means that some users may be experiencing far from acceptable response times.
Visit our web design programs services for an affordable and reliable webhost to suit all your needs.

Make web site - CHAPTER 12 Trending, Forecasting, and

Friday, October 19th, 2007

CHAPTER 12 Trending, Forecasting, and Capacity Planning I think I have my head around applications in production now, John stated. I know how to assess the health of my environment and tune it, and if problems do arise, I know how to field them. I feel confident! I didn t want to burst his bubble, but we still needed to talk about one topic. You ve arrived at a good point, but let me ask you a question. What are you planning on doing with your environment in the future? Do you know how many users you are going to have in six months? Do you know how your environment can handle that? John looked a little irritated at my question, but I saw a slight gleam in his eyes as he anticipated that I was going to complete his production story. Okay, Einstein, tell me where you re going with this. Three topics for you: trending, forecasting, and capacity planning. You need to know where you are, where you re going, and how you re going to arrive at the correct destination, I said. I ve heard those terms used a lot. What is the difference between them, and how can I use them to make both my users and my boss happy? One of the things that I really appreciated about John was his focus on the bottom line: meeting the needs of his users and his business. It is true that they are closely related, but there are distinct differences. Trending involves constructing models around your environment and analyzing those models against historical data with the intent to identify discernable patterns. Forecasting is the projection of trends in conjunction with business domain expertise to assess their impact on your environment. Finally, capacity planning is the analysis of forecasts on business processes and the construction of a resolution plan. The frequent analysis of your environment in this context can help ensure that your application is always meeting your SLAs, keeping both your users and your boss happy. Let me tell you more about it.
Searching for affordable and proven webhost to host and run your servlet applications? Go to Linux Web Hosting services and you will find it.

Unable to start debugging on the web server - CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY Summary The

Thursday, October 18th, 2007

CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY Summary The effects of production performance issues on your business can be measured in terms of losses of revenue, productivity, and credibility. The only effective mechanism to minimize these losses when a performance problem occurs is implementing a formal production support workflow. By putting the appropriate tools and processes in place, you can be alerted to problems before your users and optimize problem resolution times. This chapter serves as a guide that you can follow to optimize your production support workflow. In your organization, roles will probably overlap and boundaries between them blur, but attempt to define a stakeholder responsible for each role and plan your support strategies, much like you would plan for a fire by performing fire drills.
If you are looking for cheap and quality webhost to host and run your website check Jboss Web Hosting services.

314 CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY A (Web hosting isp)

Wednesday, October 17th, 2007

314 CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY A standardized process that is methodically followed each time a problem arises leads to quicker resolution times, because the forethought of the process eliminates confusion when the problem occurs. Consider fire drills again: when a fire occurs, we do not want everyone to attempt to run out of a burning building, follow the same routes, trample each other, and then assemble without any way to know who is missing. Rather, we segment groups within our company and define specific escape routes. We assign a leader for each group who is responsible for determining who is accounted for and who is missing. When a fire does occur and everyone follows the process, no one gets trampled, and everyone is accounted for. In the production support workflow, when an application fails to respond, rather than putting together all team and technology leads in a war room to shout out theories, the individual best equipped to diagnose the application failure receives it. The process continues until the problem reaches the individual or team best equipped to resolve it, with no confusion about who is involved or about the process that each person that the problem touches is expected to follow. By designating support roles to specific individuals at each tier, not only do you eliminate confusion, but you also minimize resistance from that individual. Deflecting blame from oneself is human nature, but when problem occurrences are methodically triaged to a particular technology or component, the individuals responsible for supporting that technology or component are more willing to respond appropriately. Furthermore, with a predetermined process to follow, they are not caught unprepared and unaware of what to do next. They were designated to be in this role and know the process to follow, so chances are they will not resist near as much as if the process did not exist. And when they do not resist the process and turn immediately to solving the problem, then the natural result is a quicker resolution. Triaging may be the most important component to the sanity of your support team, and as a result, may significantly minimize your resolution times. Recall that the finger-pointing face- off occurs frequently, but when an intelligent alert identifies a problem and points to a component, the finger-pointing is removed. For example, either the database listener is up or it is not: the intelligent alert leaves no room for intelligible debate. There may be room for that debate in a Monty Python sketch, but now for something completely different . . . My first foray into finger-pointing battles occurred when I was working on a large, distributed application, responsible for the front end interface. The front end interacted with our homegrown middleware technology to access the persistence layer, and during an integration phase, a functional issue halted all integration testing. Being on the front end, the manifestation of the problem was that the data was not available, and I was blamed by the middleware team. I needed two days of programming to prove that the problem was, in fact, in the middle- ware code. The two problems in this example were a lack of personal responsibility (fingerpointing) and a lack of monitoring insight in order to triage the problem. Deeper monitoring insight would have saved me two days of effort and shortened our integration phase. The final internal benefit to a formal production support workflow is that only the minimal amount of internal productivity is ever lost, because only parties responsible for offending technologies are involved in the troubleshooting exercises. In my previous example, had the problem been properly triaged and handed to the middleware team, not only would the problem have been resolved quicker, but I would not have wasted two days troubleshooting the problem. Implementing a formal production support workflow has countless benefits, but in the end, it reduces the losses outlined in the beginning of the chapter.
We would like to recommend you tested and proved virtual web hosting services, which you will surely find to be of great quality.

Web server on xp - CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY Note Observe

Tuesday, October 16th, 2007

CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY Note Observe that I use the term concise problem assessment document and not problem assessment report. The time spent building and reviewing this document can be counted toward impacted release schedules, thus you do not want to waste too much time building reports. A concise document detailing the nature and severity of the problem and the effort required to resolve it provides enough information for the development manager to decide whether or not to fix the problem, or to ask for additional information. If the problem requires major architectural changes, then a formal problem assessment report can be constructed and reviewed by the development manager and product manager to determine how and when, or if, it will be resolved. In the end, if the problem has been labeled as a known issue not to be fixed, then the problem ticket needs to be closed and listed as such. The issue is then filed in the bug tracking system, so that if it is reported again, development does not have to be involved. The most appropriate place for the final determination of whether a subsequent problem alert is a duplicate is at the application support tier, because similar problem symptoms may not necessarily be caused by the same problem. The individuals best equipped to make this determination are the ones who elevated the problem to development in the first place. Benefits of a Formal Production Support Methodology From a high level, defining a formal production support methodology is relatively simple. Take the following steps: 1. Divide the support effort into tiers. 2. Assign roles to individuals in each tier. 3. At each tier, try to resolve the problem, or triage the problem and gather contextual information before escalating the problem to the subsequent tier. The challenge is effectively implementing a tiered resolution process that is specific to your organization. Use the four-level model presented in the previous section as a guide, and adapt it to address each technology stack in your organization to yield the following benefits: A standardized process that eliminates confusion and leads to quicker resolution times Delegated roles to streamline the troubleshooting process Effective triaging that eliminates finger-pointing Minimized losses in productivity across all development tiers by involving only the required teams
From our experience, we can recommend PHP Web Hosting services, if you need affordable webhost to host and run your web application.

312 CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY (Virtual web hosting) The

Monday, October 15th, 2007

312 CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY The response to a problem is a balance between the severity of the alert and the effort required to resolve it: high-severity problems must be resolved while low-severity problems may be resolved if the effort is minimal. While each problem must be evaluated on an individual basis, the quadrants in Figure 11-2 may help you determine the best option. Figure 11-2. You can use this chart as a guide to determining the response to a problem based on the severity of the alert and the effort required to resolve it. For example, if the severity of the problem is high, such as daily application crashes, then fixing the problem immediately may be the only viable option, regardless of the effort required to do so. But if the severity is minor, such as if 1 out of 10,000 user logins fails, then even a medium effort required to fix the problem may preclude it from ever being fixed. Again, you are balancing impacted release schedules with the severity of problems, and each decision must be made from a business perspective. Based upon the problem assessment, if any substantial effort is required to resolve the problem, then the architect or technical lead should compile a concise problem assessment document and present it to the development manager responsible for the component. The development manager can then determine whether or not the problem will be resolved, or if the problem needs to be evaluated further. If the decision requires input from the business units, then they will be consulted; meanwhile, developers can return to their other tasks.
From our experience, we are can tell you that you can find a reliable and cheap webhost service at Java Web Hosting services.

Submit web site - CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY Occasionally some

Sunday, October 14th, 2007

CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY Occasionally some level of animosity exists between application support engineers and software developers working on the next release of software. I know that I felt it when I was working in each role: software developers writing new code sometimes feel superior to those maintaining code, whereas developers maintaining code feel like they are cleaning up the mess of their inferior counterparts. The resolution to this animosity requires a change in mind- set and an understanding of both roles: Software developers writing new code need to understand that without application support engineers, evolving the software would be a tough task. Software developers maintaining code need to understand that schedules and feature requirements can affect the quality of code, even when proper testing methodologies are employed. Both groups are necessary in order for a company to be successful, and both groups have distinct skill sets that the other may or may not have. A successful company is partitioned into a set of interwoven development groups, and without each one, the company will fail. Note In considering quality as a function of schedules, I am reminded of my time working for a computer manufacturer. Back in the mid-1990s, we were selling desktops and minitowers running DOS and Windows 3.x; we were a Japanese company operating in an American culture. We implemented our software configurations, tested them, and released them in a relatively aggressive time frame. Some of our Japanese competitors building similar systems in Japan placed great emphasis on quality control, and therefore spent months of additional time in testing. As a result, we released products faster, but our quality was lower, while they released better-quality products more slowly. Who had the competitive edge in the United States? When we were releasing systems with DOS 6.2.2, our competitors were still releasing software with DOS 5.0, so we won hands down. The lesson: competitive edge can be more important to sales than quality, of course, with some qualification. This interesting lesson opened my eyes to analyzing the market in which we operate! Level 4 Support Involving level 4 support has the greatest impact on your organization, but if the problem necessitates that involvement, then it must be done. Typically problems enter support level 4 through a component architect or technical lead who determines the best person or team to assess the problem. From this assessment, the technical lead balances the severity of the problem against the estimate of the effort to resolve it to propose options to the development manager. The options include the following: Fix the problem now. Fix the problem in a subsequent release. File the problem as a known issue that will not be fixed.
Searching for affordable and proven webhost to host and run your servlet applications? Go to Linux Web Hosting services and you will find it.

Affordable web design - 310 CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY The

Saturday, October 13th, 2007

310 CHAPTER 11 PRODUCTION TROUBLESHOOTING METHODOLOGY The application support engineer can support an entire application, a subset of components in the application, or an individual component of it, depending on the size of the application and the company. When an alert is elevated to third level support, the application support engineer must perform the following steps: 1. Determine if this issue is already known, and uncover the resolution plan: will this issue be fixed in a patch release or in a subsequent major or minor release? 2. Uncover the nature of the problem: is the problem a simple programmatic error that can be resolved by refactoring the code, or is it architectural in nature? 3. If the problem is architectural in nature or extends beyond the scope of a support request, then a change request must be submitted to the change control board, which in most organizations means forwarding the request to product management for examination. 4. If the problem can be fixed through code refactoring, then the application support engineer fixes the problem, submits a request for a patch release, and merges the changes into the change control system for inclusion into the next release of the software. 5. Finally, if the problem is well within the scope of a support request, but the application support engineer cannot solve it, then the engineer must forward it to the appropriate development team. Forwarding the request does not reflect negatively on the application support engineer, but rather indicates that the code s complexity requires the original development team to address the problem. Note Determining the fine line between a support request and a change request can be difficult for an application support engineer. In some circumstances the determination is easy, such as a request for a new interface, but the line can quickly become blurred. For example, consider a performance problem that occurs because of the format of an internal file structure. The internal file structure may interact with a great many components in the application, and hence optimizing it may break everything else. Therefore put the request in front of product management, so that they can ask the development team for an estimate of the effort required to implement the change and evaluate the request against other priorities. Development and product management teams tend to be at odds with one another, because the development team sees the application from a technical perspective and makes decisions based on technology, whereas production management sees the application from a business perspective and weighs the impact on current customers license revenue and future sales. Many decisions that product management makes that seem irrational to developers are very rational once you understand external factors that impact product sales. As application support engineers forward problems to the next level, they need to perform additional triaging and information gathering. They need to determine the offending component( s) and provide as much context as possible to the technical lead or architect of the offending component(s). Remember that any time spent in the fourth support tier can potentially impact the release schedule of the next version of the application, and hence lead to the quantifiable losses outlined previously in this chapter.
Looking for affordable and reliable webhost to host and run your business application? Then look no more and go to servlet web hosting services.