← Back to blog
THREADS nodetonet.com

Thread limits per Proxy Client — preventing a single customer from monopolising a device

N Nodetonet Team
April 11, 2026 7 min read

A mobile phone is not a datacentre. A single Android handset on a cellular network can comfortably hold a few dozen long-lived TCP connections; push past that and the radio stack starts dropping packets, battery drains faster, and your customers start blaming you. The solution is a hard ceiling on per-client concurrency — and the Threads field on every Proxy Client is exactly that ceiling.

This guide explains what the cap counts, what the refused connection sees, how to size the number correctly across device types, how threads interact with quota and expiry controls, and how to read live usage from the panel. If you are new to the overall access-control model, start with per-customer proxy clients first.

What exactly does the Threads cap count?

Open any proxy from the panel, scroll to the Proxy Clients section, and create or edit a client. The field is labelled Threads. Leave it empty for unlimited; enter a positive integer to impose a ceiling.

The cap counts currently-open tunnels for that client — not requests per second, not bytes transferred, not the number of domains visited. A client with threads = 20 can keep twenty parallel scraper workers running indefinitely. The twenty-first worker that tries to open a tunnel before any of the existing twenty close is refused immediately.

This is the "noisy neighbour" insurance alongside quota limits and time-limited expiry. Quota stops one customer eating your bandwidth bill. Threads stop one customer monopolising your hardware. The two limits solve different problems and can be combined on the same client.

What the refused connection sees

When a client is at its thread ceiling, the response depends on the protocol:

Three things are always true for a refused connection:

  1. Immediate — no queue, no wait, no slow timeout. The caller gets an answer in single-digit milliseconds and can back off or retry another session.
  2. Deterministic — same client credentials, same proxy, same instant: same answer every time. There is no shared pool that "sometimes lets you in".
  3. Does not consume quota — refused connections are not counted against any byte cap. Your customer does not lose allowance for a connection that never forwarded data.

If your customers are using rotating sticky sessions (the -session-XXXX username suffix), each session counts as a separate tunnel for thread-counting purposes. A client running five sticky sessions and five plain connections is using ten threads total.

Sizing the cap: a practical guide

There is no universal magic number — the right cap depends on the device behind the proxy, the carrier, and how intensively your customer plans to use the connection. The table below gives starting-point ranges:

Device type Suggested threads Reasoning
Mid-range Android phone, CGNAT carrier 10 – 20 Comfortable headroom; modern handsets handle this without radio stress
Flagship phone (Turkcell, Vodafone, Türk Telekom) 30 – 50 Larger kernel buffer, faster radio — both stay happy at this load
PC agent on a wired connection 100 + No mobile-radio constraint; OS socket limits are the ceiling instead
Upstream-only proxy (no device) Match upstream plan The cap protects your upstream allowance, not a phone
Shared device (multiple clients) Sum must not exceed device capacity Each client's cap stacks; the first customer to ramp up will degrade the rest
If multiple paying customers share the same physical device, allocate threads deliberately. The sum of all client caps on that device should not exceed what the device can reliably sustain. The panel shows live open-connection counts per client so you can verify the headroom in real time.

How threads interact with other per-client controls

Threads are one of four independent limits you can set on a Proxy Client. They are AND-ed together — every limit must be satisfied for a new connection to open:

A client with threads = 5, quota = 10 GB and an expiry date hits whichever limit fires first. They are not alternatives — a new connection must clear all four hurdles simultaneously.

This design means you can create granular reseller tiers without any custom logic in your own code. A trial client might have 5 threads, 2 GB quota and a 7-day expiry; a premium client might have 50 threads, unlimited quota and no expiry. The panel enforces all of them for you. For the full reseller pattern see per-customer proxy clients.

Reading live thread usage from the panel

Each Proxy Client row shows live open connections alongside the thread cap. The counter updates in real time — it ticks up the instant a new tunnel opens and down on TCP close. You do not need to poll an API or check logs; the panel surface is the fastest view.

If you want to confirm a client is at its ceiling, watch the live counter. If it is consistently sitting at the cap, the client may be throttled more than intended — raise the cap, create an additional client for that customer, or ask them to reduce parallelism.

For deeper audit trails — who connected, when, and from which IP — see audit logs. The thread cap is about real-time enforcement; the audit log is about historical accountability.

Common mistakes to avoid

What to do next

Thread limits are one building block of a full multi-tenant proxy business. Once you have them configured, explore:

Frequently asked questions

What does the Threads field actually count?
It counts currently-open tunnels for that proxy client, not requests per second or bytes transferred. A client with threads set to 20 can have twenty simultaneous open tunnels; the twenty-first attempt is refused instantly with a 429 status.
Does a refused connection count against the client quota?
No. A connection rejected at the thread ceiling never forwards any data, so it is not counted against the byte quota. Your customer does not lose allowance for a request that was stopped at the door.
How many threads should I allow for a single mobile device?
A mid-range Android phone handles 10 to 20 threads comfortably; a flagship device can sustain 30 to 50. If multiple clients share the same device, the sum of all their caps should not exceed what the device can reliably hold. The panel shows live open-connection counts to help you monitor this.
Do thread limits work with SOCKS5 proxies?
Yes. When a SOCKS5 client hits the thread ceiling, the connection is refused at the greeting stage before any traffic passes. The behaviour mirrors the HTTP 429 response — immediate, deterministic and zero quota cost. Read more about SOCKS5 with authentication for the full protocol setup.
Can I combine thread limits with quota and expiry on the same client?
Yes, and you should for reseller use cases. The three limits are AND-ed: a new connection must clear threads, quota and expiry simultaneously. A trial account might have 5 threads, 2 GB quota and a 7-day expiry; a premium account might have 50 threads and unlimited quota with no expiry.
Where can I see how many threads a client is currently using?
The Proxy Clients table in the panel shows live open-connection counts next to each client's thread cap. The number updates in real time as tunnels open and close — no API call or log trawl needed. For historical detail, the audit log records every connection event.
N

Nodetonet Team

Building Nodetonet — a prepaid proxy + tunneling platform that replaces ngrok, Cloudflared and a residential proxy provider with a single panel.