Троттлинг (throttling) — это принудительное ограничение скорости работы системы, чтобы не выйти за безопасный предел. Слово встречается в двух разных областях, и их важно не путать: в веб-разработке троттлинг — это ограничение числа запросов к сервису за единицу времени (rate limiting), а в теме железа троттлинг — это автоматический сброс частоты процессора при перегреве. Ниже разберу оба значения: чем они отличаются, как работают, как это увидеть и настроить, с кодом и примерами.
Содержание
Два значения слова «троттлинг»
Термин пришел из английского throttle — «душить», «дросселировать», сдерживать поток. Отсюда общая идея: система намеренно замедляет саму себя, когда иначе что-то сломается или будет злоупотребление ресурсом.
Из-за одинакового названия новички смешивают два совершенно разных механизма. Чтобы этого не было, сведу их в таблицу.
| Признак | Rate limiting (сеть, API) | Тепловой троттлинг (железо) |
|---|---|---|
| Что ограничивают | Количество запросов за интервал | Тактовую частоту процессора/видеокарты |
| Причина | Защита сервиса от перегрузки и злоупотреблений | Защита кристалла от перегрева |
| Кто включает | Разработчик, настройки сервера/API | Микрокод CPU/GPU, автоматически |
| Где встречается | Бэкенд, публичные API, шлюзы | Ноутбуки, ПК, смартфоны |
| Типичный признак | Ответ HTTP 429 Too Many Requests | Падение FPS, гул кулеров, просадка частот |
Дальше разберу каждое значение отдельно.
Троттлинг как rate limiting: ограничение частоты запросов
Rate limiting — это правило вида «не больше N запросов за интервал T от одного клиента». Так публичные API и сайты защищаются от перегрузки, ботов и случайных циклов, которые шлют тысячи запросов в секунду.
Когда лимит превышен, сервер обычно отвечает кодом 429 Too Many Requests и часто присылает заголовок Retry-After — через сколько секунд можно повторить. Это стандартное поведение у GitHub API, Telegram Bot API, X (Twitter) и большинства крупных сервисов.
Типичная ошибка новичка: цикл без пауз
Покажу тройкой: неверный код, что он выдает, и исправление.
Неверный код — шлем запросы в лоб, без ограничения:
import requests
for page in range(1, 200):
r = requests.get(f"https://api.github.com/users/octocat/repos?page={page}")
print(page, r.status_code)
Фактический вывод (сокращенно) — сервис быстро отдает 429 и перестает отвечать полезными данными:
1 200
2 200
3 403
4 403
GitHub при превышении лимита без токена возвращает даже 403, а с токеном — 429; в обоих случаях в заголовках приходит момент сброса лимита. Игнорировать это нельзя: дальнейшие запросы бесполезны.
Исправление — уважать лимит и ждать столько, сколько просит сервер:
import time
import requests
def get_with_retry(url, tries=5):
for attempt in range(tries):
r = requests.get(url)
if r.status_code != 429:
return r
wait = int(r.headers.get("Retry-After", 2))
print(f"429, жду {wait} c")
time.sleep(wait)
return r
r = get_with_retry("https://api.github.com/users/octocat/repos")
print(r.status_code)
Вывод при срабатывании лимита:
429, жду 2 c
200
Как rate limiting устроен внутри
Чаще всего применяют алгоритм «токен-бакет» (token bucket): у клиента есть «ведро» на N токенов, каждый запрос забирает токен, а токены доливаются с постоянной скоростью. Есть токен — запрос проходит, ведро пусто — отказ.
import time
class TokenBucket:
def __init__(self, capacity, refill_per_sec):
self.capacity = capacity
self.tokens = capacity
self.refill = refill_per_sec
self.last = time.monotonic()
def allow(self):
now = time.monotonic()
self.tokens = min(self.capacity, self.tokens + (now - self.last) * self.refill)
self.last = now
if self.tokens >= 1:
self.tokens -= 1
return True
return False
bucket = TokenBucket(capacity=3, refill_per_sec=1)
for i in range(5):
print(i, "ok" if bucket.allow() else "отказ 429")
Фактический вывод — первые три запроса проходят, дальше отказ, пока не накопятся токены:
0 ok
1 ok
2 ok
3 отказ 429
4 отказ 429
На практике вы редко пишете это руками: лимит настраивается на уровне веб-сервера или шлюза. Например, в Nginx одной директивой:
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
location /api/ {
limit_req zone=api burst=20 nodelay;
}
Здесь rate=10r/s — десять запросов в секунду с одного IP, burst=20 — допустимый короткий всплеск. Похожие механизмы есть в API Gateway облаков, в библиотеках вроде slowapi для FastAPI и в самих сервисах.
Тепловой троттлинг: защита процессора от перегрева
Тепловой троттлинг (CPU/GPU throttling) — это автоматический сброс тактовой частоты процессора или видеокарты, когда температура подходит к критической. Чип намеренно снижает производительность, чтобы остыть и не деградировать.
Порог задан производителем. У современных процессоров Intel это Tjmax около 100 °C, у AMD Ryzen серий 7000 и 9000 — тоже около 95 °C, причем высокая температура под нагрузкой у них штатная, а не поломка. У видеокарт NVIDIA и AMD пороги свои, обычно в районе 83-90 °C.
Как понять, что процессор троттлит
Признаки на практике:
- Внезапные «тормоза»: в игре проседает FPS, тяжелая программа подвисает, хотя минуту назад все летало.
- Резкое падение частоты под нагрузкой — видно в мониторинге.
- Гул кулеров: вентиляторы выходят на максимум, особенно заметно на ноутбуках.
Точно подтвердить троттлинг можно только замером. Актуальные на 2026 год бесплатные инструменты — HWiNFO64 (подробный мониторинг с флагом Thermal Throttling), CPU-Z (частоты), для видеокарт MSI Afterburner. AIDA64 тоже умеет это, но платная, с триалом.
В HWiNFO64 при перегреве загорается отдельный датчик Thermal Throttling со значением Yes — это и есть однозначное подтверждение, а не косвенная догадка по «тормозам».
Можно ли отключить тепловой троттлинг
Технически некоторые параметры доступны: в BIOS/UEFI меняют лимиты питания (PL1/PL2 у Intel) и температурные пороги, для процессоров Intel есть утилита ThrottleStop. Но полностью убрать защиту нельзя, и это не стоит делать.
Троттлинг — последняя страховка перед аварийным выключением. Если чип упрется в предел без него, следующий шаг — принудительное отключение, а при длительном перегреве деградация кристалла. Правильный путь — не отключать защиту, а убирать причину перегрева: чистить пыль, менять термопасту, улучшать обдув, снижать напряжение (андервольтинг).
Выводы
- Троттлинг — это намеренное самоограничение системы ради безопасности; слово означает две разные вещи, и их нельзя смешивать.
- В вебе троттлинг — это rate limiting: ограничение числа запросов за интервал. Признак срабатывания — ответ HTTP 429 Too Many Requests с заголовком Retry-After.
- Правильная реакция на 429 — не долбить сервер, а ждать указанное время и повторять; типовой механизм лимита — алгоритм token bucket, а на проде его чаще настраивают на веб-сервере (например,
limit_reqв Nginx). - В железе троттлинг — тепловая защита: процессор сбрасывает частоту у критической температуры (у Intel около 100 °C, у AMD Ryzen 7000/9000 около 95 °C — это норма).
- Подтверждать тепловой троттлинг нужно замером (HWiNFO64, флаг Thermal Throttling), а не по ощущению «тормозов».
- Отключать тепловую защиту не нужно и опасно: лечить надо причину перегрева — пыль, термопасту, охлаждение.
Где применяется / связь с практикой
Освойте тему на практике
Rate limiting — обязательная часть любого нагруженного бэкенда: без него один клиент способен положить сервис, а публичные API станут мишенью для ботов. Проектирование таких ограничений, выбор алгоритма и настройка шлюзов — это тема высоконагруженных систем. Разобрать ее системно можно на курсе highload, где лимиты идут в связке с кэшированием, очередями и масштабированием.
Освойте тему на практике
Если пока хочется просто понять уровень и формат обучения, посмотрите открытые занятия — бесплатные вебинары: там разбирают реальные задачи по бэкенду и инфраструктуре без предоплаты.
Смежные темы: Проект «TG Autoposter на Nest.JS», Технология аппаратной виртуализации, Виртуализация и гипервизоры.
FAQ
Троттлинг — это всегда плохо?
Нет. Это защитный механизм. Тепловой троттлинг спасает чип от перегрева, а rate limiting защищает сервис от перегрузки. Плохо не само срабатывание, а его причина: постоянный перегрев или неправильно написанный код, который бьет в лимит.
Чем rate limiting отличается от throttling в JavaScript (функция throttle)?
Это близкие идеи, но разного масштаба. Функция throttle во фронтенде ограничивает частоту вызова обработчика (например, при скролле), а серверный rate limiting ограничивает число сетевых запросов от клиента и отвечает кодом 429. Оба сдерживают частоту, но на разных уровнях.
Что делать прямо сейчас, если ноутбук троттлит в игре?
Снизить нагрузку и температуру: закрыть фоновые программы, поднять ноутбук для обдува, почистить от пыли, при возможности заменить термопасту. Отключать защиту в BIOS не стоит — это лечит симптом ценой риска для процессора.



