Python 3.14 free-threaded в проде: у кого реально завелось без GIL?

Рейтинг: 20.7% · 1 голосов
Python, Rust, Go, C++, C#, Java, Kotlin: синтаксис, паттерны проектирования, производительность, многопоточность и сравнение языков.
Ответить
Аватара пользователя
davkar
Сообщения: 58
Зарегистрирован: 11 май 2026, 03:00

Python 3.14 free-threaded в проде: у кого реально завелось без GIL?

Сообщение davkar »

Назрел вопрос к тем, кто уже живёт на free-threaded сборке. Сервис: FastAPI плюс изрядно CPU-bound работы (парсинг документов, numpy). Сейчас классика — gunicorn, 8 воркеров на 8 vCPU, и память дублируется: по ~600 МБ на процесс, кеши в каждом свои. Поставил 3.14t через uv (uv python install 3.14t), погонял бенчи. CPU-bound задачи в ThreadPoolExecutor на 8 потоков масштабируются почти линейно — ×6.7 на 8 ядрах, чего на обычной сборке не видать в принципе. Однопоточная просадка против обычного 3.14 у меня вышла 5-8%, терпимо. С колёсами лучше, чем я боялся: numpy, pydantic-core, orjson, psycopg — всё уже с cp314t. Но пара зависимостей без free-threaded колёс ставится из sdist, собирается, работает — а вот потокобезопасность их C-кода никто не обещал. Собственно вопрос: кто крутит это в проде под реальной нагрузкой? Что с сегфолтами и гонками в расширениях? Готов ловить грабли, но хочется понимать, какие именно.
👍 ❤️ 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — nakamudr
Гоняем с марта: воркеры обработки изображений, Pillow + numpy. Было 12 процессов, стало 1 процесс на 12 потоков. Память упала с 7 ГБ до 1.8, пропускная способность та же, деплой и прогрев кешей стали сильно проще. За всё время один сегфолт — и тот в устаревшей нативной либе, после обновления тишина. Главный совет: не верьте зелёным юнит-тестам, гонки вылезают под конкурентной нагрузкой. Мы перед …
Перейти к ответу →
Аватара пользователя
nakamudr
Сообщения: 18
Зарегистрирован: 22 май 2026, 05:28

Re: Python 3.14 free-threaded в проде: у кого реально завелось без GIL?

Сообщение nakamudr »

✔ Лучший ответ — сформирован автоматически
Гоняем с марта: воркеры обработки изображений, Pillow + numpy. Было 12 процессов, стало 1 процесс на 12 потоков. Память упала с 7 ГБ до 1.8, пропускная способность та же, деплой и прогрев кешей стали сильно проще. За всё время один сегфолт — и тот в устаревшей нативной либе, после обновления тишина. Главный совет: не верьте зелёным юнит-тестам, гонки вылезают под конкурентной нагрузкой. Мы перед выкаткой крутили нагрузочный прогон часов 12 с реальным профилем трафика — вот он пару проблем и показал, обе в нашем же коде, кстати, а не в расширениях.
👍 ❤️1 🔥3 😄 🤔
Аватара пользователя
RedisNinja
Сообщения: 61
Зарегистрирован: 15 май 2026, 01:22

Re: Python 3.14 free-threaded в проде: у кого реально завелось без GIL?

Сообщение RedisNinja »

Непопулярное мнение: если у вас CPU-bound на питоне, то проблема не в GIL, а в питоне. Мы свой горячий парсинг вынесли в Rust через PyO3 и получили ×30, а не ×7. Free-threading — отличная штука, но это всё ещё интерпретатор, и ускорение упирается в его потолок. Снятие GIL лечит параллелизм, а не скорость самого кода.
👍2 ❤️ 🔥2 😄 🤔
Аватара пользователя
overflown
Сообщения: 13
Зарегистрирован: 12 май 2026, 02:37

Re: Python 3.14 free-threaded в проде: у кого реально завелось без GIL?

Сообщение overflown »

Выше резонно про Rust, но есть нюанс: ×30 вы получили вместе с обязанностью держать в команде человека, который этот Rust поддерживает. У нас команда питонистов, и вариант остаться в одном языке, получив ×6 на ровном месте сменой сборки — это очень дешёвая победа. PyO3 оставим для случая, когда и этого не хватит.
👍1 ❤️ 🔥 😄 🤔2
Аватара пользователя
ceph7
Сообщения: 33
Зарегистрирован: 13 май 2026, 08:39

Re: Python 3.14 free-threaded в проде: у кого реально завелось без GIL?

Сообщение ceph7 »

С опсовой стороны пара моментов, которые в статьях не пишут. Free-threaded — это отдельный ABI (cp314t), базовые докер-образы под него появились позже обычных, мы в итоге собираем свой от slim. И самое коварное: если импортируется расширение без поддержки free-threading, интерпретатор может молча включить GIL обратно — и вы будете думать, что у вас параллелизм, а его нет. Проверяйте sys._is_gil_enabled() на старте приложения, мы на это алерт повесили после того, как одна транзитивная зависимость нам так весь эффект съела.
👍2 ❤️ 🔥1 😄 🤔1
Аватара пользователя
kiwash
Сообщения: 14
Зарегистрирован: 12 май 2026, 09:42

Re: Python 3.14 free-threaded в проде: у кого реально завелось без GIL?

Сообщение kiwash »

@nakamudr, Я для себя решил так: 3.14t — уже не эксперимент, но прод у меня консервативный (финтех), подожду 3.15, где обещают добить просадку однопотока и где экосистема ещё на полгода отлежится. На пет-проектах гоняю вовсю, полёт отличный.
👍1 ❤️1 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Языки программирования»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя