advanced
Latency
Снижайте время запроса, находя медленные зависимости, стоимость сериализации, queueing, блокировку event loop и cold-start пути.
Latency — сколько длится одна операция end to end, обычно p50/p95/p99, а не только среднее. Для Node.js API latency складывается: DNS, TLS, queueing, handler, downstream RPC, БД, сериализация.
Client → LB wait → App queue → Handler → DB → Response serialize
| Источник | Что проверить | |----------|---------------| | Queueing | Event-loop lag, saturation thread pool | | Dependencies | Медленные HTTP, DNS, cold starts | | Data access | N+1, нет индексов, большие payload | | Serialization | Огромные JSON, sync `JSON.stringify` |
Снижайте latency по traces: бейте по самому длинному span. Cache и pooling помогают после идентификации медленного шага.
На интервью: tail latency vs среднее; cold start serverless; как concurrency увеличивает queueing; SLO вроде «p95 < 300ms».
Типовые ошибки: оптимизация среднего при удвоении p99; cache до исправления запросов; игнор TLS и географического RTT.
Компромисс — воспринимаемая скорость против консистентности, retry и стоимости железа.
Чеклист:
- Перцентили per route.
- Trace критичных journey.
- Атака на крупнейший span.
- Повторное измерение после изменений.