Saturday, April 29, 2023

Performance Testing - Common Database issues | DB issues in Performance testing

Here are some common DB performance issues and their solutions:

1. Slow queries: Queries that take a long time to execute can cause the database to become unresponsive. One solution is to optimize the queries by using indexes and avoiding unnecessary joins.

2. Too many connections: When too many connections are established to a database, it can cause performance issues. One solution is to limit the number of connections or to use a connection pool.

3. Poor indexing: Without proper indexing, the database may have to scan the entire table to find the data it needs, which can slow down performance. One solution is to create indexes on the columns used in frequently executed queries.

4. Insufficient hardware resources: If the database server does not have enough CPU, memory, or disk resources, it can cause performance issues. One solution is to upgrade the hardware or optimize the configuration of the existing hardware.

5. Locking and blocking: When multiple users access the same data, locking and blocking can occur, causing performance issues. One solution is to use row-level locking instead of table-level locking.

6. Fragmentation: Over time, data can become fragmented, causing performance issues. One solution is to perform regular maintenance tasks, such as defragmenting the database.

7. Poorly designed schema: A poorly designed database schema can cause performance issues. One solution is to redesign the schema to better reflect the application's data access patterns.

8. Inefficient use of database connections: If an application does not use database connections efficiently, it can cause performance issues. One solution is to use connection pooling or optimize the code that accesses the database.

Tuesday, April 25, 2023

VUser memory foot prints load runner | Calculating Memory Requirements for Vusers in LoadRunner: Protocol-Specific Considerations

How much memory will take by a single vuser when we run the script in load runner?

The number of bytes consumed by each protocol in LoadRunner can vary depending on several factors such as the size and complexity of the script, the type of application being tested, and the specific actions being performed by the Vusers. LoadRunner provides a resource monitoring tool called "Performance Monitor" that can be used to track the memory usage of a Vuser during a load test. By analyzing the memory usage data collected by the Performance Monitor, you can estimate the amount of memory consumed by a single Vuser. Here is my experience with different protocols memory foot prints.

Web HTTP/HTML Protocol: a single Vuser running a script with the Web HTTP/HTML protocol can consume anywhere from a few hundred kilobytes to several gigabytes of memory depending on the factors mentioned above. It is important to note that the memory usage can increase over time as the Vuser executes more transactions and the amount of data being processed and stored in memory grows. In my previous testing with 1000 user load, each Vuser took 5MB -50 MB per transaction.

Web Services API Protocol: In this the Vuser will take very less amount of memory that is from 1MB - 5 MB, also note that in some cases it may raise and go up to 50 MB asvwell.

Citrix Protocol: The minimum number of bytes consumed by the Citrix protocol is around 5-10 kilobytes per transaction, which includes the Citrix-specific protocol overhead. The maximum number of bytes can be several hundred kilobytes, depending on the size of the screen being transferred.

SAP GUI Protocol: The minimum number of bytes consumed by the SAP GUI protocol is around 50-100 kilobytes per transaction, which includes the SAP-specific protocol overhead. The maximum number of bytes can be several megabytes, depending on the size of the data being transferred.

Oracle NCA Protocol: The minimum number of bytes consumed by the Oracle NCA protocol is around 50-100 kilobytes per transaction, which includes the protocol overhead. The maximum number of bytes can be several megabytes, depending on the size of the data being transferred.

TruClient Protocol: The number of bytes consumed by can vary depending on the complexity of the web application being tested, the number of browser requests and responses, and the specific actions being performed by the Vuser. Some approximate numbers are

The minimum number of bytes consumed by TruClient is around 200-300 bytes per transaction, which includes the HTTP request and response headers. However, this can vary based on the size and complexity of the web page being loaded.

The maximum number of bytes consumed by TruClient can be several megabytes, depending on the size of the web page being loaded, the number of assets (such as images and videos) being transferred, and the specific actions being performed by the Vuser.

It's important to remember that these are only estimates, and the precise amount of bytes used by each transaction can change depending on a variety of different variables. It is therefore advised to count the precise number of bytes used by each transaction using LoadRunner's monitoring tools or other third-party tools while the script is being executed.