Load Testing Proxies: Hit Your Own Services From Real-World Source IPs
Quick answer
For load testing your own services you need rotating datacenter proxies: high throughput, low cost per gigabyte and enough source IPs that your WAF, rate limiter and CDN see distributed traffic instead of one hammering address. Geonode datacenter starts at $0.14/GB. Add residential when you need real last-mile latency from specific countries. Use this only against infrastructure you own.
Why load testing breaks without the right proxies
A load generator on a few machines sends every request from the same handful of source IPs. That is not what production traffic looks like, and your edge knows it. The WAF applies per-IP rate limits and returns HTTP 429 or a challenge page long before the application tier feels any pressure. The test reports a failure no real user would hit, or the auto-block kicks in and the rest of the run measures a block page.
CDNs make it harder. Edge caches, per-client connection limits and geo-routing mean a test from one region exercises one PoP and one cache. You never learn how the origin behaves when traffic arrives from Asia, Europe and the Americas at once, or how the balancer distributes thousands of distinct client connections.
Load testing proxies fix the shape of the traffic. Each virtual user exits from a different IP, optionally a different region, so rate limiters, balancer stickiness and cache keys are exercised the way they will be on launch day.
Which Geonode proxy type fits
The recommended product is Rotating Datacenter Proxies. Load tests push a lot of bytes, and datacenter at $0.14/GB keeps a multi-gigabyte run affordable. Datacenter exits also have the stable, low-latency path you want when measuring your own origin rather than the public internet. Append -type-datacenter to the username and every request rotates to a new source IP.
Residential proxies are the second tool. Use them for a smaller slice when the question is what p95 latency looks like for a real user on a home connection in Jakarta or São Paulo. The pool spans 195+ countries with country, state and city targeting, and sticky sessions up to 24 hours keep one virtual user on one IP through a login flow. At $0.27/GB at volume, keep this slice to latency measurement.
ISP proxies fit a controlled soak test where your WAF allow-lists a fixed set of static IPs. Unlimited bandwidth per IP from $1.25/IP keeps a long soak cheap.
- Residential — Best for: Real last-mile latency by country, login flows; IP source: Real consumer devices, 195+ countries; Session: Rotating or sticky up to 24 h; Price from: $0.27/GB at volume
- ISP (static residential) — Best for: Allow-listed soak tests, fixed virtual users; IP source: Static IPs from real ISPs; Session: Unlimited, static; Price from: $1.25/IP
- Datacenter — Best for: Bulk load, WAF and balancer distribution; IP source: Datacenter ranges, rotating; Session: Rotating; Price from: $0.14/GB
How to set it up
- Tell your SRE and security teams the test window, the traffic source and the expected request rate. Add a test header so the WAF and logs can tag the traffic.
- Configure your load tool, such as k6, Locust or JMeter, to send all requests through the proxy with
-type-datacenter. Each virtual user then exits from a rotating IP. - For a latency slice, run a second small scenario through residential with
-country-xxand a sticky session per virtual user, so one simulated person keeps one IP. - Ramp the request rate in stages and watch origin metrics alongside proxy status codes. A rise in 429s from your own edge is a finding, not a proxy problem.
- Export per-request exit IP, region, status and timing. Correlate with APM traces to see where distributed traffic hits a bottleneck single-source tests missed.
# verify endpoint against docs.geonode.com before publishing
# bulk load through rotating datacenter exits
export GEONODE_PROXY="http://USERNAME-type-datacenter:PASSWORD@premium-residential.geonode.com:9000"
# single probe with timing
curl -s -o /dev/null -x "$GEONODE_PROXY" \
-H "X-Load-Test: run-2026-10-13" \
-w "status=%{http_code} connect=%{time_connect}s ttfb=%{time_starttransfer}s total=%{time_total}s\n" \
https://staging.yourservice.com/api/health
# latency slice from a specific country, one sticky virtual user
export GEONODE_RES="http://USERNAME-country-id-session-vu17:PASSWORD@premium-residential.geonode.com:9000"
curl -s -o /dev/null -x "$GEONODE_RES" -w "id total=%{time_total}s\n" \
https://staging.yourservice.com/
Get the exact snippet for your language from the API Code Generator in the dashboard.
Load-testing-specific settings that matter
Rotating for load, sticky for journeys
Bulk request scenarios should rotate on every request so the balancer and WAF see many clients. Journey scenarios that log in, add to cart and check out need one IP per virtual user, so give each a session id for the whole journey.
Region mix that matches your users
Shape the residential slice to your real audience. If most of your users are in India, most latency probes should carry -country-in. Country, state and city targeting are available, but state and city cannot be combined on one request.
Concurrency and ramp
Geonode sets no fixed thread limit, so concurrency is bounded by your load tool and your own service. Ramp in steps and hold each step long enough for autoscaling to react. Jumping straight to peak tells you nothing about where the knee is.
Separate proxy errors from service errors
Log proxy connect time and TTFB separately from application response time. A connection timeout at the proxy and a 503 from your origin are different findings; one blended error rate hides the real bottleneck.
Test only what you own
Point the proxy at staging or at production during a declared window, with the test header set and the security team informed. Never load test third-party services, partner APIs or anything you are not authorised to stress.
What Geonode gives you for load testing
- Datacenter rotation from $0.14/GB for high-volume, low-cost traffic generation.
- Residential exits in 195+ countries for real last-mile latency measurement.
- Sticky sessions up to 24 hours so each virtual user keeps one IP through a journey.
- No fixed concurrency limit; HTTP, HTTPS and SOCKS5 supported.
- Pay-as-you-go with no contract, so a one-off launch test costs only what it uses.
Pricing for load testing
Datacenter proxies start at $0.14/GB, the right tier for the bulk of a load test. Residential starts at $0.27/GB at volume, with an entry plan of 10 GB for $7.92 a month, 50 GB for $34.65 and a 3-day trial for $5; use it for the latency slice. ISP proxies for allow-listed soak tests start at $1.25/IP with unlimited bandwidth. Everything is pay-as-you-go with no contract, so a quarterly capacity test needs no standing subscription. Volume tiers are on the pricing page.
FAQ
Why use load testing proxies instead of more load generators?
More generators still share a few IPs, so per-IP rate limits and WAF rules trip before the application does. Proxies spread the same request rate across many source addresses and regions, which is how real traffic arrives at your edge.
Datacenter or residential load testing proxies?
Datacenter for the bulk of the load: $0.14/GB and a stable network path. Residential for a small slice that measures real consumer latency per country. Running the full load through residential works but costs more per gigabyte without adding information.
Will the proxy add latency to my measurements?
Yes, by the proxy hop. Measure it once with a baseline request to a known-fast endpoint, record connect time and TTFB separately, and subtract the baseline. The relative change in your origin's response time under load is what matters.
Can I allow-list a fixed set of IPs for a soak test?
Yes. Geonode ISP proxies are static IPs from real ISPs with unlimited sessions and bandwidth, from $1.25/IP. Allow-list them in your WAF for a controlled multi-day soak and keep datacenter rotation for the distributed burst scenarios.
What are the limits and compliance rules?
Use load testing proxies only against infrastructure you own or are authorised in writing to test, inside a declared window. Respect your hosting provider's terms. Geonode's acceptable use policy prohibits denial-of-service against third parties, fraud, spam and credential abuse.
How do I keep the test from being blocked by my own WAF?
Do not disable the WAF; it is part of what you are testing. Tag traffic with a test header, review the rules that fire during the run, and decide per rule whether it protects users or just blocks distributed load production will also see.
Start
Run a distributed test against staging this week. Get started with datacenter proxies on a pay-as-you-go plan, or contact sales if you are planning a launch-scale test and want volume pricing or allow-listed ISP IPs.
Related: Website performance optimization · Mobile app testing · Website change monitoring