
Сериализация между процессами в Python: что ломается первым под нагрузкой
Пул из восьми воркеров начинает захлёбываться не на вычислениях, а на передаче данных. Разбираем, во что превращается pickle под нагрузкой и чем его заменить.

Пул из восьми воркеров начинает захлёбываться не на вычислениях, а на передаче данных. Разбираем, во что превращается pickle под нагрузкой и чем его заменить.

Пул из восьми процессов на 32-ядерной машине упирается не в CPU, а в сериализацию и копирование при fork. Разбираем, почему shared_memory течёт, где multiprocessing.Manager становится узким горлышком и что мерить.

Воркер Celery за сутки разросся с 200 МБ до 3 ГБ, OOM-killer убил процесс на пике нагрузки. Разбираем, как найти, что течёт, чем мерить и где Python обманывает ожидания.

Форк, pickle через pipe и участок разделяемой памяти — три разных механизма под одним модулем multiprocessing. Разбираем, где копируются данные, а где нет, и почему это влияет на скорость.

Сервис ест CPU, но приложить strace или добавить профайлер в код нельзя — на нём висят живые запросы. py-spy снимает стек работающего процесса извне, без рестарта и без правок кода.

Пул из восьми процессов, каждый копирует 2 ГБ массива через pickle — и обработка встаёт на десятки секунд. Разбираем, где Python тратит время на сериализацию и как shared_memory убирает эти копии.

Токен, вбитый прямо в код, утекает в git. Токен без таймаута вешает поток на минуты. Разбираем, как хранить, обновлять и передавать токены в requests и httpx без граблей.

Пакет с ленивыми импортами ради совместимости грузился 380 мс на старте. Разбираем, где утекает время при поддержке старого API и как вернуть 40 мс без слома пользовательского кода.

Схему меняете миграциями, а перелив данных гоните руками в проде на глазах у пользователей. Разбираем, чем платит каждый из подходов к миграции данных и когда какой выбрать.

async with молча пропускает освобождение ресурсов при отмене задачи, ломает порядок выхода при вложенности и не работает в синхронном коде. Разбираем, где именно это происходит и что мерить.

Библиотека вышла с версией 2.4.1, CI собрался зелёным, а через час прод начал падать с TypeError. Разбираем, где обратная совместимость дала трещину и как этого избежать.

Переименовали параметр — и у сотни проектов упал импорт. Разбираем, какие изменения в публичном API ломают чужой код и на что смотреть в ревью, прежде чем нажать merge.