Support >
  About independent server >
  How many concurrent users can a large server support?
How many concurrent users can a large server support?
Time : 2025-03-27 16:42:09
Edit : Jtti

  How many concurrent users can a large server support? It depends on multiple factors, such as hardware configuration, software architecture, business type and optimization strategy. High-performance servers (such as models equipped with multi-channel CPUs, large memory and high-speed SSDs) can support tens of thousands to millions of concurrent connections, but the number of effective concurrent users in actual business scenarios is often far lower than the theoretical number.
  Main factors of large server concurrent capabilities
  1. Server hardware
  The parallel processing capability of multi-core processors (such as Intel Xeon/AMD EPYC) is the key. For example, a 64-core server can theoretically handle tens of thousands of lightweight concurrent requests (such as HTTP short connections). The single-core performance (IPC) of the CPU also affects the throughput of single-threaded applications.
  Each concurrent connection will occupy a certain amount of memory (such as TCP connections require about 4-16KB). If the server is equipped with 512GB of memory, pure TCP connections can support millions of concurrent connections, but in actual business, resources must be reserved for application logic.
  10Gbps/25Gbps network cards can support higher throughput. For example, 10Gbps bandwidth can theoretically support about 1 million concurrent connections (assuming each connection has only 10Kbps traffic). High-concurrency databases or file services require NVMe SSDs (such as hundreds of thousands of IOPS per second) to avoid disk bottlenecks.

/uploads/images/202503/27/876c95e5b8cfea23a4f44163a21c94b9.jpg
  2. Software architecture
  Linux kernel parameter tuning (such as net.ipv4.tcp_max_syn_backlog, ulimit restrictions) directly affects concurrency capabilities. For example, adjusting the TCP buffer can improve long connection performance.
  Multi-threading/multi-process: Traditional Apache servers connect to one thread per thread, and concurrency is limited by thread switching overhead (usually thousands of concurrent connections). Nginx, Redis, etc. use event loops (epoll/kqueue), and a single machine can support 100,000+ concurrent connections. For example, Goroutine in the Go language further reduces context switching costs. HTTP/2 multiplexing saves more connections than HTTP/1.1, and WebSocket long connections are more efficient than short connections.
  3. Business Types
  Lightweight requests (such as static web pages, API calls);
  A single server can support 100,000+ concurrent requests (such as Nginx static services);
  Computational intensive (such as video transcoding, AI reasoning;
  The number of concurrent requests has dropped significantly, and may only be tens to hundreds (depending on the CPU computing power);
  MySQL single machine usually supports thousands of concurrent queries (index optimization is required), while Redis can reach 100,000+ QPS.

Business Type Server Configuration Theoretical concurrent capabilities Actual reference value
Web Static Server 16-core CPU, 32GB memory, 10Gbps 500,000+ HTTP connections 100,000~300,000 active connections
API Microservices 32-core CPU, 64GB RAM, Kubernetes 50,000+ RPS (requests per second) 10,000~30,000 complex transactions/second
Game Server (MMO) 64-core CPU, 128GB memory, 25Gbps 10,000~50,000 players online 5000~20000 (including logic processing)
Live video streaming (CDN edge) 24-core CPU, 48GB memory, 100Gbps 100,000+ concurrent streams 50,000~80,000 (1080p H.264)
Database (MySQL) 32-core CPU, 256GB memory, NVMe SSD 5000+ concurrent queries 1000~3000(OLTP场景)

  4. Optimization strategies to break through concurrency bottlenecks
  Horizontal expansion: Distribute traffic to multiple servers through load balancing (such as LVS, HAProxy) to break through the single-machine limitation.
  Connection reuse: Use multiplexing protocols such as HTTP/2 and gRPC to reduce the number of connections.
  Asynchronous processing: Convert time-consuming operations (such as IO) to asynchronous tasks (Celery, Kafka queues).
  Cache optimization: Redis caches hot data to reduce database pressure.
  Kernel tuning: Adjust TCP parameters (such as net.core.somaxconn) and enable zero-copy technology.
  There is no unified answer to the concurrency capability of large servers. It needs to be combined with specific scenarios. The optimized Linux server can maintain millions of TCP connections (such as C10M problem solution). In actual business, it is usually thousands to hundreds of thousands (constrained by the complexity of business logic). When the performance of a single machine encounters a bottleneck, the distributed architecture should be given priority rather than continuing to improve the single-machine configuration.

JTTI-Eom
JTTI-Ellis
JTTI-Selina
JTTI-Defl
JTTI-COCO