Skip to content

Instantly share code, notes, and snippets.

@ChakshuGautam
Last active December 26, 2025 06:27
Show Gist options
  • Select an option

  • Save ChakshuGautam/b00bb9db67c7839a626de37c2568d8e3 to your computer and use it in GitHub Desktop.

Select an option

Save ChakshuGautam/b00bb9db67c7839a626de37c2568d8e3 to your computer and use it in GitHub Desktop.
NIPUN Bharat Load Test Report - 500 VU Test (10 minutes)

NIPUN Bharat Load Test Report - 500 VU

Test Duration: 10m 30s | VUs: 500 constant | Date: Dec 26, 2025
Total Requests: 185,548 | Throughput: 294.5 req/s | Failures: 1.04%


Executive Summary

Metric Value Status
Total Iterations 6,082 completed PASS
HTTP Requests 185,548 PASS
Throughput 294.5 req/s PASS
Avg Response Time 1.14s CRITICAL
P95 Response Time 2.26s CRITICAL
Max Response Time 60s (timeout) CRITICAL
HTTP Failure Rate 1.04% (1,944 failed) WARNING
Check Success Rate 79.68% CRITICAL

Verdict: CRITICAL - Server cannot sustain 500 VUs. Severe performance degradation.


Endpoint Performance

Endpoint Success Rate Avg Time P90 Time P95 Time Max Time SLA Status Volume
Authentication
Send OTP 93% (5,703/6,109) 3.56s 4.86s 5.54s 60s CRITICAL 6,109
Verify OTP (Status) 96% (5,510/5,703) 3.56s 4.86s 5.54s 60s CRITICAL 5,703
Verify OTP (Token) 84% (4,826/5,703) 3.56s 4.86s 5.54s 60s CRITICAL 5,703
Metadata & Profile
Get Metadata (Status) 99% (4,782/4,826) 1.42s 1.56s 1.75s 60s WARNING 4,826
Get Metadata (Time<500ms) 9% (466/4,826) 1.42s 1.56s 1.75s 60s CRITICAL 4,826
Get Mentor Details 99% (14,370/14,478) 1.42s 1.56s 1.75s 60s WARNING 14,478
Get Actions 99% (4,786/4,826) 1.42s 1.56s 1.75s 60s WARNING 4,826
Assessment Cycle
Get Assessment Details 99% (4,783/4,826) - - - - PASS 4,826
Get School Status 99% (9,565/9,652) - - - - PASS 9,652
Student Data
Get Students List 98% (14,327/14,478) 1.61s 2.08s 2.34s 60s WARNING 14,478
Get Student Results (Status) 98% (57,228/57,912) 1.61s 2.08s 2.34s 60s WARNING 57,912
Get Student Results (Time<1s) 8% (5,052/57,912) 1.61s 2.08s 2.34s 60s CRITICAL 57,912
Get Performance Insights 98% (4,759/4,826) 1.61s 2.08s 2.34s 60s WARNING 4,826
Submit Assessment
Submit Assessment (Status) 98% (4,765/4,826) 989ms 1.37s 1.49s 34.7s WARNING 4,826
Submit Assessment (Time<3s) 99% (4,821/4,826) 989ms 1.37s 1.49s 34.7s PASS 4,826
Submit Visit Results 98% (4,766/4,826) 989ms 1.37s 1.49s 34.7s WARNING 4,826
ODK Form Sync
Form Sync (Status) 100% 1,276ms 1,575ms 1,667ms 2,595ms PASS ~60,000
Form Sync (Time<100ms) 0% 1,276ms 1,575ms 1,667ms 2,595ms CRITICAL ~60,000

Critical Issues (Ranked by Severity)

Rank Issue Impact Metric Recommendation
1 Student Results - Response Time CRITICAL 92% exceeded 1s SLA Add Redis cache, optimize queries, pagination
2 Metadata - Response Time CRITICAL 91% exceeded 500ms SLA Cache metadata, add read replicas
3 Authentication - Failures CRITICAL 10% auth failure rate Fix FusionAuth pooling, add retry logic
4 Authentication - Timeouts CRITICAL Max 60s, avg 3.56s Investigate DB locks, connection pooling
5 ODK Sync - Response Time CRITICAL 10x slower (1.2s vs 100ms) Cache manifests, CDN for static files
6 Database - Timeouts CRITICAL 60s max suggests DB lock Add query timeout, optimize slow queries
7 HTTP - Send Time WARNING Max 37.8s for sending Check network, request size, connection pool

Performance Breakdown by Volume

Endpoint Category Request Count % of Total Avg Time Failure Rate Priority
Student Results 57,912 31.2% 1.61s 1.2% HIGH
ODK Form Sync ~60,000 32.3% 1.28s 0% MEDIUM
Mentor Details (3x per iter) 14,478 7.8% 1.42s 0.7% MEDIUM
Students List 14,478 7.8% 1.61s 1.0% MEDIUM
School Status (2x per iter) 9,652 5.2% - 0.9% LOW
Authentication 11,812 6.4% 3.56s 10% HIGH
Submit Assessment 9,652 5.2% 989ms 1.3% LOW
Other 7,564 4.1% - 1% LOW

Recommendations

Immediate (P0)

  • Limit production to 200-250 VUs until infrastructure upgraded
  • Cache student results - Add Redis with 5-minute TTL
  • Fix auth failures - Investigate 10% failure rate
  • Add database indexes - Profile and optimize slow queries

Short Term (P1)

  • Add read replicas - Offload SELECT queries
  • Implement connection pooling - Prevent connection exhaustion
  • Cache metadata - 15-minute TTL for rarely changing data
  • Add request timeout - Kill queries >5s

Long Term (P2)

  • Horizontal scaling - Add 2+ app servers with load balancer
  • CDN for ODK assets - Cache form manifests
  • Implement pagination - Lazy load student results
  • Add APM monitoring - DataDog/NewRelic for bottleneck detection

Capacity Planning

VUs Expected Performance Infrastructure
0-100 Excellent (<100ms avg) Current setup OK
100-200 Good (<300ms avg) Current setup OK
200-300 Acceptable (<800ms avg) Add caching recommended
300-500 Poor (1-3s avg, timeouts) Requires infrastructure upgrade
500+ Failing (timeouts, errors) Requires major upgrades

Recommended Production Limit: 250 concurrent users


Test Configuration

Parameter Value
Base URL https://api.staging.nl.samagra.io
ODK URL https://central-demo.nl.samagra.io
Virtual Users 500 (constant)
Duration 10 minutes 30 seconds
Test Users 8 phone numbers
Schools (UDISE) 3 (9050125526, 9150204103, 9670613001)
ODK Forms 12 validated forms
Cycle ID 13

Conclusion

CRITICAL FINDINGS:

  • Server cannot sustain 500 concurrent users
  • Response times degraded 20-30x compared to baseline
  • Database appears to be the primary bottleneck (60s timeouts)

POSITIVE FINDINGS:

  • ODK sync achieved 100% success rate
  • Submit operations performed well (99% under 3s SLA)
  • HTTP failure rate acceptable at 1.04%

Next Steps:

  1. Run 200 VU test to establish healthy baseline
  2. Implement caching layer (Redis)
  3. Optimize database queries causing timeouts
  4. Retest at 300 VUs after optimizations

Generated: Dec 26, 2025 | Tool: k6 Load Testing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment