Нагрузка и производительность
Измерения кликов, постбеков и отчётов на серверах 2 vCPU / 4 ГБ и 4 vCPU / 8 ГБ, условия теста и ориентиры для выбора конфигурации.
Числа ниже получены 14 октября 2026 года на двух реальных VPS. Это результаты конкретных сценариев, а не гарантированная скорость любого сервера с таким объёмом памяти. Минимальные требования и подготовка — на отдельной странице.
Рабочий ориентир
| Сервер | Простой редирект | Ротация и лимиты офферов |
|---|---|---|
| 2 vCPU / 4 ГБ | Начните с 500–1 000 кликов/с | Начните с 250–500 кликов/с |
| 4 vCPU / 8 ГБ | Начните с 1 000–2 000 кликов/с | Начните с 500–1 000 кликов/с |
Это ориентиры с запасом относительно проверенных коротких пиков. Смотрите на очередь статистики, задержку клика, CPU, доступную память и время ответа отчётов. Не пересчитывайте минутный тест в обещание такого же потока круглые сутки: за сутки меняются объём данных, состояние диска и нагрузка фоновых задач.
Условия измерения
- Две Ubuntu 24.04, amd64, виртуальные ядра KVM: 2 CPU / 3 915 МиБ и 4 CPU / 7 941 МиБ; swap отсутствует.
- Go-код пути клика из выпуска 20261013.8, PostgreSQL 16, ClickHouse 24.8, Redis 7. В тесте включена облегчённая конфигурация журналов ClickHouse. Бинарники собраны из исходников этого выпуска, это не замер защиты кода установочного архива.
- Отдельные одноразовые базы, сети и контейнеры; существующие установки продолжали работать. Результаты не являются пределом полностью свободной машины.
- Память тестовых контейнеров ограничена: ClickHouse — 1 200 МиБ, Redis — 512 МиБ, PostgreSQL и оба Go-сервиса — по 256 МиБ. Это одинаковый профиль теста на обоих VPS.
- Простой сценарий: клик → запись журнала → HTTP 302 на один оффер. Сложный: три оффера, ротация по непосещённым и проверка лимитов кликов.
- Запросы идут прямо в тестовый redirect, без Cloudflare и публичного HTTPS. Генератор не открывает внешний оффер. PHP-страницы, загрузка файлов, внешние API и полная фильтрация с GeoIP в этот замер не входят.
- Для каждой ступени сверены идентификаторы принятых кликов и строки ClickHouse, соответствие посетителям, суммы расходов и итог отчёта. В сложных сценариях отчёт запрашивается каждые пять секунд; свежие постбеки проверяются во время нагрузки.
Короткие ступени
Каждая ступень длится 60 секунд. Генератор работает на проверяемом сервере; его CPU входит в общую нагрузку. p95 означает, что 95% запросов ответили не медленнее этого времени; p99 — 99%. Задержка считается от запланированного момента запроса и включает ожидание в очереди генератора.
| Сервер | Сценарий | Задано, кликов/с | Принято, кликов/с | p95 / p99, мс | Догон статистики, с |
|---|---|---|---|---|---|
| 2 / 4 | Редирект | 250 | 250 | 38 / 110 | 0.4 |
| 2 / 4 | Редирект | 500 | 500 | 40 / 113 | 0.5 |
| 2 / 4 | Редирект | 1000 | 1000 | 50 / 119 | 0.5 |
| 2 / 4 | Редирект | 2000 | 2000 | 171 / 269 | 1.6 |
| 2 / 4 | Редирект | 3000 | 2985 | 413 / 591 | 0.6 |
| 2 / 4 | Редирект | 4000 | 3376 | 9975 / 11179 | 1.6 |
| 2 / 4 | Ротация + лимиты | 250 | 250 | 29 / 82 | 1.5 |
| 2 / 4 | Ротация + лимиты | 500 | 500 | 26 / 48 | 0.5 |
| 2 / 4 | Ротация + лимиты | 1000 | 1000 | 77 / 147 | 0.5 |
| 2 / 4 | Ротация + лимиты | 1500 | 1495 | 571 / 889 | 0.5 |
| 4 / 8 | Редирект | 500 | 500 | 53 / 126 | 0.6 |
| 4 / 8 | Редирект | 1000 | 1000 | 49 / 115 | 1.6 |
| 4 / 8 | Редирект | 2000 | 1999 | 78 / 164 | 0.6 |
| 4 / 8 | Редирект | 3000 | 2997 | 106 / 186 | 0.7 |
| 4 / 8 | Редирект | 5000 | 4970 | 334 / 499 | 0.8 |
| 4 / 8 | Редирект | 6000 | 5976 | 1517 / 1655 | 7.3 |
| 4 / 8 | Ротация + лимиты | 500 | 500 | 57 / 119 | 1.6 |
| 4 / 8 | Ротация + лимиты | 1000 | 1000 | 44 / 110 | 0.6 |
| 4 / 8 | Ротация + лимиты | 2000 | 1997 | 108 / 158 | 0.6 |
| 4 / 8 | Ротация + лимиты | 3000 | 2987 | 1533 / 1652 | 0.6 |
На 2/4 при 1 500 кликах/с с ротацией p99 приблизился к 0,9 с. На 4/8 при 3 000 кликах/с с ротацией p99 превысил 1,5 с, и рост нагрузки остановлен. При 4 000 кликах/с простого редиректа на 2/4 очередь запросов увеличила p99 до 11,2 с, фактическая скорость составила около 3 400/с. На 4/8 при 6 000 кликах/с p99 достиг 1,66 с; к остановке потока накопилось около 58 тыс. кликов в очереди статистики, запись завершилась ещё за 7,3 с. Даже когда записи не теряются, такой режим уже ухудшает отклик и оставляет меньше запаса для панели.
Пять минут постоянной нагрузки
Каждый указанный режим проверялся 300 секунд тем же локальным генератором. Это проверка устойчивого потока в течение пяти минут; предел многосуточной работы по ней не определяется.
| Сервер | Сценарий | Задано, кликов/с | Принято, кликов/с | p95 / p99, мс | Догон статистики, с |
|---|---|---|---|---|---|
| 2 / 4 | Редирект | 1000 | 1000 | 72 / 138 | 1.6 |
| 2 / 4 | Ротация + лимиты | 500 | 500 | 54 / 126 | 1.5 |
| 4 / 8 | Редирект | 2000 | 2000 | 84 / 156 | 0.7 |
| 4 / 8 | Ротация + лимиты | 1000 | 1000 | 71 / 150 | 0.6 |
Сверка принятых и записанных кликов выполняется после каждой ступени. Догон статистики — измеренное время завершения записи после остановки потока; это не потеря кликов.
Постбеки и отчёты
Отдельно проверены 4, 16 и 32 одновременных постбека с идентификаторами транзакций на каждом VPS. Все приняты, повторов конверсий не обнаружено. При 32 одновременных постбеках самый долгий ответ занял 0,75 с на 2/4 и 0,58 с на 4/8. Панель отвечала во время проверки. Отдельный конкурентный тест на обоих серверах остановил оффер точно на лимите 20 000 кликов; счётчик совпал с записанными кликами.
На существующей установке 2/4 с 483 кампаниями и 1,23 млн перенесённых кликов медиана полного отчёта по кампаниям за всю историю была около 0,7 с. Это чтение существующей истории: тестовые клики в неё не добавлялись. Параллельные тяжёлые отчёты и другие группировки могут занимать больше времени.
Нагрузка без трафика
В минутном замере CPU сервера 2/4 в простое снизился с 22% до 5,6%, сервера 4/8 — с 8,7% до 4,3% после изменения журналов ClickHouse. Сохраняются предупреждения, ошибки и журнал запросов; подробные постоянные профилировочные записи отключены, метрики записываются реже. Снижение фоновой нагрузки само по себе не означает такое же ускорение каждого отчёта.
Если панель кажется медленной, проверьте свободное место, доступную RAM, очередь статистики, фоновые переносы и бэкапы. Сначала сравните время открытия панели без отчётов и с выбранным длинным периодом, затем увеличивайте ресурсы по фактическому узкому месту. Проверка нагрузки должна использовать отдельные тестовые кампании и изолированные данные.
Дальше — требования к серверу, хранение статистики и резервные копии.