This project presents a structured performance evaluation of a social network web application, focusing on load analysis, stress behavior, long-duration stability, and function-level profiling.
The primary objectives were:
- Evaluate system behavior under concurrent user load
- Identify performance bottlenecks using profiling tools
- Perform Load, Stress, and Soak testing
- Analyze execution cost at function level
- Compare results between different load testing tools
- Xdebug – PHP profiling extension for execution tracing
- KCacheGrind – Visualization tool for call graphs and performance metrics
- Locust – Python-based distributed load testing framework
- Apache JMeter – Java-based performance testing tool
- Target: 1000 concurrent users
- Spawn rate: 10 users/second
- Sustained load for several minutes
- Metrics evaluated:
- Average response time
- Throughput
- Failure rate
- Request latency distribution
Incremental user increase to determine:
- Maximum sustainable capacity
- Performance degradation threshold
- Service disruption point
Defined threshold example:
Dashboard response time exceeding 60 seconds.
Analysis focused on identifying the precise breaking point and failure patterns.
Long-duration execution under steady load to evaluate:
- Stability over time
- Memory leaks
- Resource exhaustion
- Gradual performance degradation
A high-load dashboard page was selected due to:
- Multiple database queries
- Mixed GET and POST requests
- Dynamic content rendering
- Heavy user interaction
Five user-behavior scenarios were implemented, including:
- Login → dashboard access
- Viewing posts and loading comments
- Like/comment interactions
- Mixed GET/POST sequences
- Multi-request workflows
Weighted task execution was applied to simulate realistic traffic distribution.
Using Xdebug output imported into KCacheGrind:
- Top three highest self-time functions were identified
- Callee map analysis performed
- Call graph traversal analyzed
- Bottleneck root causes investigated
Observed performance issues included:
- Expensive database operations
- Repeated function invocation chains
- Inefficient query handling
- High include-time overhead
Optimization strategies were proposed accordingly.
Identical load conditions were replicated across both tools.
- Comparable response time trends
- Similar throughput patterns
- Matching failure thresholds
- Threading and execution model
- Resource consumption characteristics
- Reporting capabilities
- Configuration complexity
A structured comparative analysis is provided in the full report.
- Identified system bottlenecks under high concurrency
- Determined service threshold limits
- Conducted empirical comparison of load testing tools
- Applied profiling-driven performance analysis workflow
This repository contains the complete analytical and experimental documentation of the project phase. Testing scripts and execution environments were originally developed locally.