В высоконагруженном Python-сервисе вы замечаете, что при увеличении числа потоков скорость обработки CPU-bound задач не растёт. Почему так происходит и как это исправить?
Из-за GIL только один поток выполняет байткод одновременно, поэтому многопоточность не ускоряет CPU-bound задачи. Решение — использовать multiprocessing, вынести тяжёлые вычисления в C-расширения или применять библиотеки вроде NumPy, которые обходят GIL.
Библиотека собеса по Python
Библиотека собеса по Python
❤5
У вас есть Python-сервис, который обрабатывает асинхронные запросы через asyncio. При нагрузочном тесте задержки начинают расти, хотя CPU и память почти не используются. В чём может быть причина и как её решать?
Скорее всего, внутри event loop есть блокирующие операции (синхронные вызовы к БД, файлам или тяжёлые вычисления). Их нужно вынести в отдельный процесс или поток (ProcessPoolExecutor/ThreadPoolExecutor) либо заменить на асинхронные аналоги библиотек.
Библиотека собеса по Python
Библиотека собеса по Python
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
7 октября стартует второй поток курса «AI-агенты для DS-специалистов».
За 5 недель вы научитесь собирать агентов, которые уже сейчас будут помогать бизнесу.
В кружке выше Максим Шаланкин, наш преподаватель, рассказывает подробнее — включай, чтобы не пропустить.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👾1
Вы запускаете высоконагруженный Python-сервис на asyncio. Со временем отклик начинает расти, хотя CPU и память загружены слабо. В чём может быть причина и как подойти к решению?
Обычно это значит, что внутри event loop выполняется блокирующий код (синхронные запросы к БД, тяжёлые вычисления, блокирующие I/O). Их нужно вынести в отдельные процессы/пулы потоков (ProcessPoolExecutor, ThreadPoolExecutor) или заменить на асинхронные аналоги библиотек.
Библиотека собеса по Python
Библиотека собеса по Python
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
❗ Так, владелец макбука. Хватит позировать в кофейне.
Настоящее портфолио — это не стикеры на крышке, а проект с чистым кодом, README и рабочей демкой.
Не знаешь, как такой собрать? Научим. Наш курс «ML для старта в Data Science» — это пошаговый гайд к проекту, за который не стыдно.
ОСТАЛАСЬ НЕДЕЛЯ, чтобы забрать его по старой цене в 44.000 ₽. С 1 сентября — всё.
🎁 И да, при покупке курса ML до 1 сентября — курс по Python получаешь бесплатно.
👉 Апгрейд от «вайба» до «оффера» тут
Настоящее портфолио — это не стикеры на крышке, а проект с чистым кодом, README и рабочей демкой.
Не знаешь, как такой собрать? Научим. Наш курс «ML для старта в Data Science» — это пошаговый гайд к проекту, за который не стыдно.
ОСТАЛАСЬ НЕДЕЛЯ, чтобы забрать его по старой цене в 44.000 ₽. С 1 сентября — всё.
🎁 И да, при покупке курса ML до 1 сентября — курс по Python получаешь бесплатно.
👉 Апгрейд от «вайба» до «оффера» тут
👍1
Вы разрабатываете высоконагруженный сервис на FastAPI. При нагрузочном тестировании видно, что время отклика сильно растёт, хотя CPU и память используются не полностью. Какие могут быть причины и как вы будете решать проблему?
Чаще всего проблема в блокирующем коде (синхронные запросы к БД, внешним API или тяжёлые вычисления), который “забивает” event loop. Нужно вынести такие операции в ThreadPoolExecutor/ProcessPoolExecutor или заменить их на асинхронные аналоги (например, httpx.AsyncClient, databases, async-драйверы для SQL/NoSQL). Также стоит проверить конфигурацию Uvicorn/Gunicorn (число воркеров, workers-per-core) и настроить connection pooling.
Библиотека собеса по Python
Библиотека собеса по Python
🔥3👍1