Нагрузки и БД · · обновлено · 3 мин чтения

Нагрузки и БД: чинить индексы или покупать железо

Медленная выдача и ночные отчёты лечатся цифрами: какие запросы сколько стоят в секундах продукта и в рублях железа. Сначала профиль, потом спор про индексы или новый сервер.

Текст: Алексей Меркулов

Нагрузки и БД: чинить индексы или покупать железо

«Сайт лёг в пятницу» и «отчёты считаются до утра» выглядят похоже, но лечатся по-разному. Алексей Меркулов (Fobscraft) начинает с профиля запросов и цены секунды продукта — и только потом выбирает между индексом, очередью и новым железом. Разбор живой инфраструктуры — через услуги Fobscraft.

Две боли, один туманный диагноз

Обратите внимание на разговор после аварии. Кто-то предлагает «ещё один инстанс». Кто-то уже выбирает другую базу. Кто-то хочет месяц рефакторинга. Цифр на столе мало: непонятно, какой запрос жжёт время и сколько это стоит.

Без профиля спор становится религиозным. С профилем появляется простой вопрос: мы платим за шум в запросах или за честный рост нагрузки?

Сначала список запросов

Заметьте три отдельные кучи, которые нельзя смешивать.

  • Самые долгие и самые частые запросы — top по времени и по частоте.
  • Блокировки и длинные транзакции — они роняют чужие операции.
  • Фоновые задания, которые пишут в те же таблицы, что и пользовательский путь.

Принцип: сначала назовите виновника в запросах, потом выбирайте инструмент. Новая база не отменяет ответ на вопрос «какой запрос жрёт выручку прямо сейчас».

Дешёвые победы после профиля

Когда виновник назван, часто хватает короткого списка действий.

  • Индекс под реальный фильтр и сортировку, которые уже есть в коде.
  • Убрать повторные мелкие чтения в горячих списках.
  • Увести отчёты на реплику или в отдельный ночной контур.
  • Поставить очередь на запись там, где человеку достаточно подождать пару секунд.

Принцип: дешёвая победа — та, что возвращает секунды продукта без месяца героизма. Её видно в профиле до и после.

Когда железо всё же покупают

Теперь изменим только экономику. Допустим, команда долго вылизывает запросы ради небольшого ускорения, а апгрейд диска или процессора по смете окупается заметно быстрее на текущем трафике. Профиль уже чистый: рост близок к линейному, шума мало. Сроки и суммы считаются по вашим цифрам — здесь важен сам порядок сравнения.

В этой точке железо — ускоритель, а не маскировка. Его берут и параллельно дочищают модель. Деньги любят параллельность: продукт не стоит на паузе, пока идеальный запрос ждёт ревью.

Принцип: покупайте мощность, когда платите за рост, а не за хаос. Иначе новый сервер просто дороже крутит те же плохие запросы.

Что вы теперь можете объяснить

Вы можете объяснить, почему спор про «ещё один инстанс» бесполезен без профиля. Вы умеете разложить нагрузку на запросы, блокировки и фоновые записи. Вы выбираете дешёвые победы по цифрам и понимаете, когда апгрейд железа окупается рядом с правкой модели, а когда только маскирует шум.

Заказ

Нужен разбор или архитектура

Напишите в Telegram или на почту — посчитаем эффект и стоимость. Форм на сайте нет.