Common Performance Issues
Result analysis is the most critical part of performance testing. This is where we analyze results and other application & server metrics. Sometimes we get performance issues and sometimes everything runs just fine (rarely though). In either case Performance testing is success – when there is no issue, that gives stakeholders confidence that the application will perform as expected in Live and when there is bottleneck / issue – it gives time to fix before going Live.
Most performance problems revolve around speed, response time and load time. Response time is often one of the most important attributes of an application. Based on the application architecture, bottlenecks can be on any of the layers. Below are some common performance issues for any web / mobile application.
Application Server Performance Optimization
1.1 High CPU Usage on Application Servers
Indicator: CPU counters via Server Stats or monitoring tools.
Causes & Solutions:
- Inefficient application code or transactions.
- Use Java profiling tools to detect locks and inefficiencies.
- Identify slow transactions with e-Reporter and collaborate with developers/DB engineers.
- Ensure servers are tuned per manufacturer specifications.
- If optimized code and tuning don’t help, consider scaling hardware resources.
1.2 Low Memory Conditions
Indicator: Available memory via Server Stats.
Solutions:
- Verify sufficient memory allocation for deployed applications.
- Add more RAM if required.
- Monitor for memory leaks during load runs.
1.3 Low Dynamic Pages Per Second
Indicator: Pages-per-second counter on application server.
Solutions:
- Tune server per manufacturer specs.
- Optimize inefficient application code.
- Address poor coding practices impacting throughput.
1.4 Low Activity but Increasing Response Times
Indicator: Throughput doesn’t increase with load; CPU/memory not stressed.
Solutions:
- Check for asynchronous transactions causing queuing.
- Investigate threading issues in application code.
- Ensure processes can execute in parallel.
1.5 High CPU Usage + Low Dynamic Pages
Indicator: CPU counters + page rate counter in e-Load.
Solutions:
- Optimize inefficient SQL queries.
- Convert dynamic pages to static where possible.
- Tune server per manufacturer specs.
1.6 Long Response Times & Timeouts Under Load
Indicator: Response time in e-Load + CPU counters.
Solutions:
- Verify thread pool configuration.
- Ensure sufficient concurrent process settings.
1.7 Long Client Response Times + Low DB Usage
Indicator: Database CPU counters + client response times.
Solutions:
- Optimize connection pooling on application server.
1.8 Spiky Response Times
Indicator: CPU usage spikes + client-side delays.
Solutions:
- Configure Java server clustering (even on single machines).
- Adjust Java runtime parameters for frequent garbage collection.
- Monitor GC intervals with runtime switches.
1.9 High Disk I/O or CPU Usage
Indicator: Disk I/O and CPU counters.
Solutions:
- Reduce logging levels in production.
- Eliminate unnecessary logging overhead.
1.10 Slow Page Loads Under Low Load
Indicator: High DB usage, large data transfers, queue wait times.
Solutions:
- Optimize dynamic pages and algorithms.
- Limit DB queries to only required records (e.g., 20 instead of 500).
1.11 CPU Spikes During Page Execution
Indicator: CPU spikes per page request.
Solutions:
- Minimize unnecessary object includes in .jsp/.asp pages.
- Streamline code to reduce parsing overhead.
1.12 Poor ASP Server Performance
Indicator: Low dynamic pages per second vs manufacturer specs.
Solutions:
- Apply ASP performance tuning recommendations from vendor.
1.13 Poor Java Server Performance
Indicator: Low dynamic pages per second vs manufacturer specs.
Solutions:
- Use the fastest JVM available.
- Remove unnecessary functions.
- Apply vendor-recommended JVM switches for memory, garbage collection, and server optimization.
Web Server Performance Optimization Guide
2.1 High CPU Usage on Web Servers
Indicator: CPU counters via Server Stats.
Solutions:
- Check for server overload, especially with SSL transactions.
- Add more web servers or use an SSL accelerator to handle SSL traffic.
- Fix High CPU Usage on Web Servers During Testing
- Learn how to reduce high CPU usage on web servers by optimizing SSL traffic and scaling resources.
2.2 High Disk I/O Activity & Low Page Throughput
Indicator: High disk I/O or low throughput via Server Stats.
Solutions:
- Ensure source files are stored on separate physical drives, not with log files.
- Reduce excessive logging to minimize I/O disruption.
- Optimize Disk I/O and Page Throughput on Web Servers
- Improve web server performance by separating source files from logs and minimizing disk I/O activity.
2.3 NFS Shares Causing Slow Access
Indicator: High network activity to shared file systems.
Solutions:
- Avoid using NFS shares for web files, logs, or source files.
- Store files locally or use high-speed SAN devices for shared storage.
- Avoid NFS Shares for Faster Web Server Performance
- Prevent slow access on web servers by storing files locally or using high-speed SAN storage.
2.4 Slow Page Downloads Over Modem Connections
Indicator: e-Load modem emulation shows slow download times.
Solutions:
- Keep page sizes under 75k for modem users.
- Optimize page size for all networking speeds.
- Optimize Page Size for Faster Modem Downloads
- Reduce slow page downloads by keeping web page sizes under 75k and optimizing for all users.
2.5 Netscape iPlanet Web Server Performance Issues
Indicator: Low pages per second or hits per second via Server Stats.
Solutions:
- Add more processes when running Netscape iPlanet.
- Netscape recommends four processes with up to 512 simultaneous connections.
- Improve Netscape iPlanet Web Server Performance
- Boost Netscape iPlanet server performance by adding processes and supporting up to 512 connections.
2.6 High Disk I/O or CPU Usage on Web Servers
Indicator: Disk I/O or CPU counters via Server Stats.
Solutions:
- Set logging levels to minimum for production.
- Remove unnecessary logging to reduce CPU and I/O overhead.
- Reduce Disk I/O and CPU Usage on Web Servers
- Optimize web server performance by minimizing logging levels and reducing unnecessary CPU and disk activity.
Network Performance Optimization Guide
3.1 Low CPU Usage but Poor Performance
Indicator: Response times increase as users are added, but Web systems show no stress.
Solutions:
- Verify external system interactions.
- Ensure the network is not exceeding rated capacity.
- Fix Poor Performance Despite Low CPU Usage
- Learn how to troubleshoot poor performance when CPU usage is low by checking external systems and network capacity.
3.2 Excess Packets Dropped on Network
Indicator: SNMP counters on switches/routers show packet loss.
Solutions:
- Check for incorrectly configured network devices.
- Add network capacity if limits are exceeded.
- Reduce Packet Loss on Networks
- Solve excess packet drops by verifying network device configurations and scaling capacity.
3.3 Lost Connections
Indicator: Lost connection errors during load tests.
Solutions:
- Local LAN may be exceeding rated capacity.
- Segment external and internal networks.
- Check firewalls, load balancers, routers, and switches for misconfiguration.
- Troubleshoot Lost Connections in Network Systems
- Prevent lost connections by segmenting networks and verifying firewall, router, and load balancer configurations.
3.4 Network Capacity Exceeded at Low User Numbers
Indicator: SNMP counters show switch performance issues.
Solutions:
- Use an independent network for internal traffic.
- Place Web traffic on separate NIC cards and subnets.
- Fix Network Capacity Issues at Low User Loads
- Optimize network capacity by separating internal traffic and using dedicated NIC cards and subnets.
3.5 Firewall Errors During User Ramp-Up
Indicator: Firewall errors or timeouts during load tests.
Solutions:
- Verify firewall licensing and configuration.
- Ensure concurrent users don’t exceed firewall capacity.
- Remember each user may open up to four connections.
- Resolve Firewall Errors and Timeouts Under Load
- Prevent firewall errors during ramp-up by checking licensing, configuration, and concurrent connection limits.
3.6 Load Balancer Not Utilizing All Web Servers
Indicator: High connections on one server, others underutilized.
Solutions:
- Verify load balancer configuration.
- Adjust rules to balance traffic across all servers.
- Optimize Load Balancer Configuration for Web Servers
- Ensure even traffic distribution by tuning load balancer rules to utilize all web servers.
3.7 Poor Network Performance
Indicator: Switch performance issues or low throughput in e-Load tests.
Solutions:
- Force all network connections to 100 MB/sec full duplex or better.
- Improve Poor Network Performance with Proper Configuration
- Boost network performance by configuring connections for 100 MB/sec full duplex or higher.
External Systems Performance Optimization Guide
4.1 External Systems Impacting Overall Performance
Indicator:
- Poor performance despite internal Web systems functioning well.
- Measured by response times, pages per second, or transactions per second not meeting expected values.
Solutions:
- Verify the performance of external systems and integrations.
- Treat external calls as potential “black boxes” and monitor available counters.
- Common external systems include:
- Tax calculation websites
- Shipping/tracking services
- Credit card validation systems
- Check for:
- Queuing delays on external systems
- Synchronous requests slowing down external calls
- WAN speeds not sufficient for required traffic
SEO Enhancements
- Optimize External System Performance for Web Applications
- Improve overall system performance by monitoring external integrations, reducing queuing delays, and optimizing WAN speeds.
Database Performance Optimization Guide
5.1 Queued Requests but Low Application Server Usage
Indicator: Queued request indicator from application server via Server Stats.
Solutions:
- Verify sufficient JDBC pool connections between application server and database.
- Increase connection pool size to improve throughput.
- Fix Queued Requests with JDBC Pool Optimization
- Resolve queued requests by increasing JDBC pool connections and optimizing application server database usage.
5.2 Slow Query Response
Indicator: Specific page or transaction runs slowly.
Solutions:
- Ensure queries and stored procedures use indexes efficiently.
- Check query execution plans and optimize.
- Use database profiling tools to identify bottlenecks.
- Best practices:
- Minimize sorting (use index defaults).
- Eliminate unnecessary triggers.
- Reduce temp table usage.
- Use parameter-based stored procedures.
- Limit result sets and minimize joins, order-by, and group-by clauses.
- Optimize Slow Database Queries for Better Performance
- Speed up query response by using indexes, profiling tools, and optimizing SQL statements.
5.3 Overall Slow Database Performance
Indicator: High database utilization with few users, especially during initial testing.
Solutions:
- Apply all performance patches and optimizations.
- Tune database per manufacturer specifications.
- Improve Overall Database Performance with Proper Tuning
- Enhance database efficiency by applying performance patches and tuning per vendor recommendations.
5.4 Large Data Transfers Between Application & Database Servers
Indicator: High CPU usage on database server and large data transfers.
Solutions:
- Use stored procedures instead of inline SQL.
- Stored procedures are precompiled, easier to optimize, and better for source control.
- Inline SQL is harder to optimize and requires recompilation each run.
- Title Tag: Optimize Data Transfers with Stored Procedures
- Meta Description: Reduce CPU usage and improve performance by using precompiled stored procedures instead of inline SQL.
5.5 High Disk I/O on Database
Indicator: Disk I/O counters show heavy usage.
Solutions:
- Store logs, data, and indexes on separate disks.
- Use RAID configurations for speed.
- Ensure queries use indexes.
- Verify sufficient memory and properly configured cache.
- Title Tag: Reduce High Disk I/O in Databases
- Meta Description: Optimize disk I/O by separating logs, using RAID, and ensuring proper indexing and caching.
5.6 Poor Multi-User Database Performance
Indicator: High number of locked tables or blocked transactions.
Solutions:
- Review and optimize transactions for multi-user scenarios.
- Adjust database locking strategies to reduce contention.
- Improve Multi-User Database Performance
- Enhance multi-user performance by optimizing transactions and modifying database locking strategies.
5.7 Slow Query Response Due to Table Scans
Indicator: High number of table scans via Server Stats database monitors.
Solutions:
- Identify missing indexes and rebuild or create them.
- Plan for data volumes expected after one to two years of live usage.
- Ensure indexes scale with growing datasets.
- Eliminate Table Scans with Proper Indexing
- Speed up queries by adding or rebuilding indexes and planning for long-term data volumes.
Leave a Reply