advanced
Throughput
Повышайте устойчивую работу в секунду, понимая лимиты concurrency, насыщение CPU, I/O wait, batching и backpressure.
Throughput — сколько работы завершается за единицу времени: RPS, jobs в минуту, мегабайты stream. Растёт до насыщения ресурса: CPU, память, disk I/O, сеть, соединения БД или внешние rate limits.
| Сигнал bottleneck | Типичный предел | |-------------------|-----------------| | CPU 100% | Compute-bound handlers, JSON, crypto | | Высокий I/O wait | БД или remote HTTP | | Connection errors | Pool или `max_connections` БД | | 429 | Upstream или собственные rate limits |
Повышайте throughput эффективными алгоритмами, batching, async I/O, horizontal scale и backpressure — не бесконечным parallelism. В Node слишком много concurrent promises может **снизить** throughput из-за memory и event loop.
На интервью: компромисс latency vs throughput; Little's Law (`concurrency ≈ throughput × latency`); когда помогает batching; vertical vs horizontal scale.
Типовые ошибки: бесконечный `Promise.all` по строкам БД; реплики при насыщенной БД; throughput без error rate.
Компромисс — максимум RPS против tail latency и поведения при overload.
Чеклист:
- RPS с перцентилями latency и ошибками.
- Насыщающий ресурс через USE metrics.
- Явные границы concurrency.
- Load test до обещаний по ёмкости.