LLM Serving at Scale: GPU Compute Bottlenecks and High-Concurrency Strategies

    This article examines the structural compute constraints behind large language model (LLM) online serving. It explains how prefill and decode phases consume GPU resources, why token throughput determines concurrency ceilings, and how KV Cache management acts as a hidden limit on capacity. It then presents architectural strategies for high-concurrency inference, including request scheduling, priority queues, dynamic batching, elastic scaling, model quantization, and traffic control, and closes with capacity-planning and best-practice guidance for teams building their own inference services.

    Introduction: When LLM Online Serving Hits the Compute Wall

    In the summer of 2026, a mainstream LLM online service platform faced a critical shortage of compute resources as user numbers surged. The platform announced that it would temporarily stop accepting new members and published a notice explaining the situation. This was not an isolated incident but a structural challenge common to the规模化 deployment of LLM services: when inference-side GPU compute becomes the bottleneck, platforms must trade off between user experience and resource sustainability.

    For developers and enterprise users, this incident raises a range of technical questions. What determines the capacity ceiling of an online inference service? How can throughput be maximized under limited compute? How does KV Cache lifecycle management affect concurrency? What options exist for elastic scaling and traffic control? This article addresses these questions systematically across three dimensions: technical principles, architecture design, and practical strategies.

    1. GPU Compute: The Core Bottleneck of Online Inference Services

    1.1 Resource Consumption Model of the Inference Phase

    Online serving of large language models consists of two main phases: the prefill phase and the decode phase. The prefill phase processes all input tokens at once, with computation proportional to the square of the input length. The decode phase generates output token by token; its computation is relatively low but it is highly sensitive to memory bandwidth.

    Under high concurrency, the peak capacity of the system is mainly constrained by the following factors:

    • GPU compute (FLOPS): Determines how many matrix operations can be completed per unit time, directly affecting the total number of tokens generated per second.
    • VRAM capacity: Determines how many requests’ KV Caches and model weights can reside simultaneously on a single GPU.
    • Memory bandwidth: In the decode phase, token generation speed is often limited by VRAM bandwidth rather than raw compute.

    In short, the total amount of GPU resources determines the number of active sessions a platform can sustain at any given moment. More compute means more users served per unit time; when compute is tight, new requests must queue or even be rejected.

    1.2 Token Throughput Determines the Concurrency Ceiling

    A core metric that is often overlooked is token throughput (tokens per second, TPS). Suppose a single GPU can generate N tokens per second and an average conversation requires M tokens of generation. Then, in theory, a single GPU can fully serve N/M user requests per second (ignoring prefill overhead).

    When the user base far exceeds this theoretical value, the system experiences queuing, soaring latency, and even unavailability. This is the technical essence of the compute shortage incident: demand-side growth far outpaced the expansion of supply-side GPU resources.

    2. KV Cache: The Hidden Killer of Concurrency Capacity

    2.1 How KV Cache Works and Consumes Resources

    In autoregressive inference under the Transformer architecture, the system caches the Key and Value matrices of each layer to avoid redundant computation. This is the so-called KV Cache. Its VRAM footprint is proportional to the following factors:

    1. KV Cache VRAM ≈ 2 × num_layers × seq_len × num_heads × head_dim × dtype_size × batch_size

    Among these, seq_len (sequence length) has a linear impact on VRAM. When users engage in long conversations, the KV Cache keeps expanding and quickly consumes VRAM space.

    2.2 Trade-off Strategies for KV Cache

    The original article makes a key point: “a chatbot’s KV Cache can be discarded.” This is technically fully valid and is a widely adopted industry strategy:

    • Prioritize one-off sessions: Many user queries are “use-and-leave” in nature (e.g., weather queries, factual Q&A). The KV Cache of such sessions can be released immediately after the response is complete.
    • Proactive eviction and recomputation: When VRAM pressure is too high, the system can proactively discard the KV Cache of low-frequency sessions. When the user continues the conversation next time, the system either reloads from persistent storage or directly re-runs inference. For most short-session scenarios, the cost of recomputation is acceptable.
    • Paged memory management: Borrowing the idea of virtual memory from operating systems, KV Cache is managed in blocks, allocated and reclaimed on demand, avoiding fragmentation waste.

    The core logic of this mechanism is trading compute for space: using limited VRAM to support more concurrent users, at the cost of some users potentially facing response latency or loss of session context.

    3. Architecture Design and Optimization Strategies for High-Concurrency Inference Services

    3.1 Request Scheduling and Priority Management

    Under compute constraints, reasonable request scheduling is critical:

    Strategy Applicable Scenario Technical Points
    Priority queue Paid users vs. free users Guarantee high-value requests through queue tiering
    Timeout and circuit breaking Prevent long-tail requests from dragging down the system Set maximum wait time and generation token limits
    Dynamic batching Improve GPU utilization Merge multiple requests into one batch for unified inference
    Request merging and deduplication Reuse results for similar queries Cache responses to high-frequency questions to reduce redundant inference

    3.2 Elastic Scaling and Resource Pooling

    Enterprise deployments should establish a multi-layer resource scheduling mechanism:

    1. Automatic scaling of inference clusters: Trigger horizontal scaling based on real-time load metrics (GPU utilization, queue depth, response latency), and automatically spin up new inference instances during traffic peaks.
    2. Hot/cold separation architecture: Schedule long-tail low-frequency requests to low-priority resource pools, while high-frequency core requests exclusively use high-performance GPU clusters.
    3. Multi-region deployment and traffic scheduling: Distribute requests to different availability zones through load balancing to avoid single-point compute bottlenecks.
    4. Model quantization and distillation: Without significantly sacrificing quality, use low-precision inference (e.g., INT8/INT4) to reduce the compute and VRAM requirements of each inference, thereby serving more users on the same hardware.

    3.3 Balancing Traffic Control and User Experience

    When compute genuinely cannot be expanded in the short term, platforms need to work on both the technical and product levels:

    • Technical level: Implement mechanisms such as token bucket rate limiting, adaptive degradation (e.g., shortening the maximum generation length), and asynchronous queuing notifications.
    • Product level: As described in the original article, preserve the rights of existing users, support plan upgrades, and clearly communicate the opening time to new users, avoiding a collapse of user trust.

    This “no one-size-fits-all, tiered assurance” strategy is a pragmatic approach to maintaining the user ecosystem under resource-constrained conditions.

    4. Implications and Best Practices for Developers

    4.1 Capacity Planning for Self-Built Inference Services

    If an enterprise chooses to build its own LLM online service rather than relying on external platforms, it must incorporate compute bottlenecks into core considerations at the early stage of architecture design:

    • Baseline stress testing: Conduct sufficient concurrency stress testing before launch to clarify the TPS ceiling and the number of sessions that a single GPU/node can support.
    • Cost modeling: Analyze the ROI of GPU purchase or rental costs against the expected user scale to avoid “hitting the wall right after launch.”
    • Canary release: Gradually open up user volume, monitor resource levels in real time, and reserve safety margins.

    4.2 Focus on Cloud-Native Inference Infrastructure

    GPU cloud servers, container services, and elastic scaling capabilities offered by cloud providers such as Baidu AI Cloud can help developers quickly build scalable inference architectures. By containerizing inference services and combining them with the auto-scaling capabilities of cloud platforms, resources can be elastically provisioned during traffic fluctuations, reducing the risk of compute shortages.

    4.3 Long-Term Perspective: Dynamic Balance Between Compute Supply and Demand

    Compute scarcity is essentially a supply-demand contradiction. In the long run, with advances in chip process technology, iteration of inference optimization algorithms (such as speculative decoding and FlashAttention), and the maturation of model compression techniques, the service capacity per unit of compute will continue to improve. At the current stage, however, reasonable resource management and architecture design remain the core means of addressing compute bottlenecks.

    5. Conclusion

    The compute scarcity problem of LLM online services reflects a critical transition of AI applications from “usable” to “good and sufficient.” GPU compute is a hard constraint, KV Cache management is a soft optimization, and elastic architecture and intelligent scheduling are the bridge connecting the two. Whether platform operators or developers of self-built services, both need to examine the planning and governance of compute resources from a systems engineering perspective, finding a sustainable balance between user growth and service quality. Only in this way can LLM services truly move toward规模化 and stable production environments.