Performance Testing, LoadRunner Tips & Tricks
This page is dedicated to performance testing using LoadRunner. Current development also includes tuning on various technologies and business perspective in load testing and usage of other load testing tools. |
|
Statistics
Unique Visitors:
Total Unique Visitors:
Outgoing:
Total Outgoing: |
0
0
18
3437 |
|
|
Articles from Performance Testing, LoadRunner Tips & Tricks |
General: Planning for Load Testing - Application Design
2007-07-22 04:37:00
This is the point that the load tester must understand how the application works. When we refer to how it works, it’s not about just clicks on links and buttons, or the calendar will pop up. It goes deeper such as the following but not limited to the list: What is the type of communication between the client and server?Is the application client-side?Is there client-side activities involved in the entire application?What is the authentication mechanism?Does the application allow multiple login of a single user?How does the application maintain a session?How does the load balancer distribution the load?What are the parameters been sent to the server? Basically, this is actually gathering the technical details of the application unlike the initial Soliciting Requirements which comprises of the “big picture” information. Without knowing how it works and you start clicking the links and buttons, you are bound for a failing load te ...
Design
|
General: Planning for Load Testing - Soliciting Requirements
2007-07-20 11:53:00
Prior to this stage, I always give a “sales talk” of what we do for a living and also to get them excited (if they are not). Gathering and soliciting accurate requirements will save you lots of unnecessary work. Be sure to get hold of the requirements to monitor such as acceptable Transaction Response Time or server utilization. Clients need to be clear of what they want before you can proceed to achieve (unless is you who proposes the benchmark). For example, if CIO wants the response time for a search to be fewer 10 seconds will be a good metric to achieve. This is also the exit criteria as per se for the load test project. They may also like to know the utilization of the servers under load and not really concerned with the response time. Usually, these are applications that are already problematic and it’s what they are hiring you to dig the cause of the bottleneck. Always get an overview of the architecture which includes all components that inhabitant it. ...
|
General: Planning for Load Testing
2007-07-18 22:01:00
After writing a couple of posts for the past few months, I would like to touch on the basic understanding of using LoadRunner in Performance Testing. This will provide an overview how you should facilitate the entire load testing process and be aware of the requirements that surfaces. If course, this is not limited to other load testing tools because the concepts are the same.There are few areas to be aware or trained in order to have the load test proceed with minimal difficulties. I’ve broken them down into the following: namely, soliciting requirements, application design, protocols, monitor setup, monitoring, analyzing and recommendations.Soliciting RequirementsApplication DesignProtocols Monitor SetupMonitoringAnalyzingRecommendationsRelated TopicsGeneral - Content Page ...
|
Understanding Memory: Virtual Addressing
2007-07-14 22:55:00
Virtual memory is a feature supported by most advanced processors. Hardware support for virtual memory includes hardware mechanism to map from logical (virtual) memory address that application programs reference to physical (real) memory hardware addresses. When an executable program’s image file is first loaded into memory, the logical memory address range of the application is divided into fixed-size chunks called pages. These logical pages are them mapped to similar-sized physical pages that are resident in real memory. This mapping is dynamic in that frequently referenced logical addresses tend to reside in physical memory (also know s RAM, real memory, or main memory), while infrequently referenced pages are relegated to paging files on secondary disk storage. The active subset of virtual memory pages associated with a single process’s address space currently resident in RAM is known as the process’s working set, because they are the active pages referenced by the progr ...
|
General: Understanding Memory - Page Fault Resolution (Illustration)
2007-07-14 22:15:00
Illustration of Page Fault Resolution. To better understand how Page Fault occurs with respect to the illustration, refer to article, "General: Understanding Memory - Page Fault Resolution". Fig 1: Page Fault ResolutionThe sequence of Page Fault resolution as follows.Thread attempts to reference page in memory.Page not resident in real memory thus not found.Hardware interrupt occur to resolve page fault.ISR gains control to validate the referenced address.Locate page on secondary storage.Copy page into available free page in real memory.Resume thread execution cycle.The time taken for Page Fault Resolution thus equivalent from Step [3] to [6]. Having mentioned that, if memory is the performance bottleneck with the number of Page Faults increases over time, the application/system may experience delay due to the time needed to perform Page Fault Resolution pointed in Step [3] to [6].Related TopicsPage Fault Resolution Performance Concerns Virtual Memory Shortage AlertsAvailable Byte ...
|
Basics: Network Bottlenecks
2007-07-14 10:18:00
At the network level, many things can affect performance. The bandwidth (the amount of data that can be carried by the network) tends to be the first culprit checked. Assuming you have determined that bad performance is attributable to the network component of an application, there is more likely cause of bad network performance than network bandwidth. The most likely cause of bad network performance is the application itself and how it is handling distributed data and functionality.The overall speed of a particular network connection is limited by the slowest link in the connection chain and the length of the chain. Identifying the slowest link is difficult and may not even be consistent: it can vary at different times of the day or for different communication paths. A network communication path lead from an application through a TCP/IP stack (which adds various layers of headers, possibly encrypting and compressing data as well), then through the hardware interface, through ...
|
Tools: Monitoring Unix Resource Script ver 1.0
2007-07-10 20:23:00
Due to the past experiences working in my organization, having the problem of not able to monitor the Unix system resources due to whatever reasons (rstatd configuration, dynamic ports, security reasons or lazy administrators) had always been bothering us.Our team came up with the simple initiative to monitor using the same concept as perfmon. We requested (outsourced) one of our interims to search for unix monitoring scripts and modify it to collect data periodically. And here we are, special thanks to the interim, we finally got the first-cut of the scripts.Copy and paste the below script starting from here ==================================================================#!/bin/bash# (C) 2006 Mark Boddington, http://www.badpenguin.co.uk/# (C) 2007 Modified by Hwee Seong, http://loadrunnertnt.blogspot.com# Licensed under the GNU GPL Version 2.# ***** Configuration *****# set LOG to the directory you want to write the performance data to.# set HDD to the number of had disks in your ma ...
|
Scripts: Starting a new transaction during iterations
2007-07-09 00:45:00
Recently one of my load testing projects required us to monitor the time taken to upload a file into the application. This sounds simple and straight forward with the implementation of the lr_start_transaction and the lr_end_transaction. However, the catch is that the action block be iterated 10 times and within the 10 iterations, one of the iteration is to upload a different file of different size (thus causing different response time), which they want to measure. What we did was implement a if-then-else to check the file and perform a lr_start_transaction when the script is uploading the different file and end the transaction with the lr_end_transaction when the submission completes. The snippet of the code is as followed:if (!strcmp(lr_eval_string("{file}"), lr_eval_string("{set_file}"))){ lr_start_transaction("tx_check_upload_different_file");}else{ lr_start_trasaction("tx_tx_check_same_upload_file");}...... \other codes......if (!strcmp(lr_eval_string("{file}"),lr_eval_str ...
|
Basics: Memory Bottlenecks
2007-07-08 03:02:00
Maintaining watch directly on the system memory (RAM) is not usually that helpful in identifying performance problems. A better indication that memory might be affecting performance can be gained by watching for paging of data from memory to the swap files. Most current OS have a virtual memory that is made up of the actual (real) system memory using RAM chips, and one or more swap files on the system disks. Processes that are currently running are operating in real memory. The OS can take pages from any of the processes currently in real memory and swap them out to disk. This is known as paging. Paging leaves free space in real memory to allocate to other processes that need to bring in a page from disk. Obviously, if all the processes currently running can fit into real memory, there is no need for the system to swap out any pages. However, if there are too many processes to fit into real memory, paging allows the system to free up system memory to run more processes. Pag ...
|
Products: SilkPerformer (a comparison with LoadRunner)
2007-07-06 03:21:00
SilkPerformer is a load testing tool from Borland, originally Segue. SilkPerformer have almost all features that LoadRunner have. Therefore, you may like to read about the product LoadRunner here before proceeding further on this article. The SilkPerformer suite consists of the Workbench, Silk TrueLog and Silk Performance Explorer. The entire load test implementation is the same where the load generators have to be installed at the machines. For the sales talk by the vendor, click here.What SilkPerformer offer is it handles load test in project approach. Using this approach, each load test is stored as a project with various settings of profiles and workloads. This is advantageous when managing the load test in a customer or project perspective where you can track the projects accordingly. Furthermore, within a project, for every load test run, a result directory for each run is created. This is useful in tracking the number of runs that were conducted. In this way, there is a structur ...
|
Basics: Disks Bottlenecks
2007-07-04 07:46:00
In most cases, applications can be tuned so that disk I/O does not cause any serous performance problems. But if, application tuning, you find that disk I/O s still causing a performance problem; your best bet may be to upgrade the system disks. Identifying whether the system has a problem with disk utilization is the first step. Each system provides its own tools to identify disk usage (Windows has a performance monitor, and UNIX has the sar, vmstat, iostat utilities.) At minimum, you need to identify whether the paging is an issue (look at disk-scan rates) and assess the overall utilization of your disks (e.g. performance monitor on Windows, output from iostat –D on UNIX). It may be that the system has a problem independent of your application (e.g. unbalanced disks), and correcting this problem may resolve the problem issue.If the disk analysis does not identify an obvious system problem that is causing the I/O overhead, you could try making a disk upgrade or a reconfiguration. Th ...
|
Basics: CPU Bottlenecks
2007-06-30 22:32:00
Java provides a virtual machine runtime system that is just that: an abstraction of a CPU that runs in software. (Note that this chapter is taken from the "Java Performance Tuning" written by Jack Shirazi and therefore alot of discussions circled around Java technologies.) These virtual machines run on a real CPU, and in this section the book discuss the performance characteristics of those real CPUs.CPU LoadThe CPU and many other parts of the system can be monitored using system-level utilities. On Windows, the task manager and performance monitor can be used for monitoring. On UNIX, a performance monitor (such as perfmeter) is usually available, as well as utilities such as vmstat. Two aspects of the CPU are worth watching as primary performance points. These are the CPU utilization (usually expressed in percentage terms) and the run-able queue of processes and threads (often called the load or the task queue). The first indictor is simply the percentage of the CPU (Or CPUs) being us ...
|
Basics: Underlying Operating System and Network Improvements
2007-06-30 22:11:00
If you control the OS and hardware where the application will be deployed, there are a number of changes you can make to improve performance. Some changes are generic and affect most applications, while some are application-specific. This article applies to most server systems running Java application, including servlets, where you usually specify (or have specified to you) the underlying system, and where have some control over tuning the system. Client and standalone Java programs are likely to benefit from this chapter only if you have some degree of control over the target system, but some tips in the chapter apply to all Java programs.It is usually best to target the OS and hardware as a last tuning choice. Tuning the application itself generally provides far more significant speedups than tuning the systems on which the application is running. Application tuning also tends to be easier (though buying more powerful hardware components is easier still and a valid choice for tuning) ...
|
Basics: Max. Running Vusers in Analysis is different from Vuser Quantity in Controller?
2007-06-28 20:09:00
There are couple of times when an individual starts to pick up LoadRunner ask this question. I've written the explanation here for the convenience of the newbies which I had previously responded in the Yahoo! group discussion. Max. Running VuserIt defines at any point of point of time, the maximum number of vusers running together concurrently (in Run state). This is the "state" or usually the requirement of a load test to reach "X" number of concurrent users. If a load test were to required to run 100 concurrent users, then the Max. Running Vuser must be 100. This is different from Vuser Quantity explained in the following.Vuser Quantity In the Controller, the Vuser Quantity is the total number of participating in the load test but it is different from Max. Running Vuser which is explained above. To view the total number of Vuser participating the load test (Vuser Quantity), open the Vuser Summary graph. Please take note that the Summary Report in the Analysis session displays the ...
|
Protocols: Java Error - java.lang.NoClassDefFoundError
2007-06-28 04:42:00
I had a question from a visitor with regards to a Java error. The error message is as followed.java.lang.NoClassDefFoundError: jhook/HookMetaData at java.rmi.Naming.lookup(Naming.java) at pie.engine.atp.ClientRMI.getRemoteModuleImpl(ClientRMI.java:256) at pie.engine.atp.ClientATPRemoteEx.getRemoteModule(ClientATPRemoteEx.java:89) at pie.engine.atp.ClientATPRemoteEx.getRemoteModule(ClientATPRemoteEx.java:64) at pie.engine.atp.VirtualRemoteServer.setupPingRemote(VirtualRemoteServer.java:102) at pie.engine.atp.VirtualRemoteServer.pingServer(VirtualRemoteServer.java:166) at pie.engine.atp.CacheTimer$1.run(CacheTimer.java:47) at java.util.TimerThread.mainLoop(Timer.java:432) at java.util.TimerThread.run(Timer.java:382)I did not have straight answer for him initially but, he was able to resolve the problem by himself with the following command script (inclusion of the Xbootclasspath).-Xbootcla ...
Error
|
|
|