Performance vs Scalability — concept page для /concepts/performance-vs-scalability. Эволюция архитектуры от 1K до 100M пользователей: monolith → split DB → cache+replica → horizontal+sharding → multi-region+CDN. 5 сценариев с конкретной болью и решением на каждом stage.
Performance — latency, throughput или resource cost при заданном workload. Scalability — как эти показатели меняются при изменении нагрузки и ресурсов. Один быстрый server может иметь отличную performance и плохой запас роста; cluster может масштабироваться, но иметь высокую coordination cost.
Вертикальное увеличение часто проще и выгоднее до фактического потолка. Horizontal scale требует partitionable/stateless work, shared state outside app process и балансировки. У него нет свойства «без потолка»: serial sections, locks, shared databases, network and coherence ограничивают gain.
User count не определяет архитектурный stage. Два продукта с одним числом пользователей имеют разные traffic shape, payload и SLO. Решение начинается с измерения.
Если одна instance даёт X, две обычно дают меньше 2X из-за shared dependencies и coordination. Scale efficiency измеряется, а не предполагается.
Учебное допущение: 10% работы serial. Для восьми workers верхняя граница 1 / (0.10 + 0.90 / 8) ≈ 4.71x до дополнительных расходов. При бесконечном числе workers bound равен 10x, а не бесконечности.
Sharding распределяет независимые ownership keys, но добавляет cross-shard constraints, migration, skew и partial failure. Если один primary всё ещё выполняет SLO с запасом, sharding может ухудшить систему.
Amdahl law показывает bound от serial fraction. Universal Scalability Law добавляет fitted coefficients contention и coherency и может показать retrograde scaling. Обе модели полезны для гипотез, но параметры надо получать из данных; они не заменяют load test.
Не привязывайте курс к «самой большой VM» конкретного облака: ceilings меняются, а реальный limit может быть connection pool, storage latency, license или recovery time.
[CONCEPT]partitioning-strategies
[CONCEPT]capacity-planning-deep
Введите числа или выберите пресет