> Сколько ядер нужно для обработки миллиона пользователей за 4 часа, если расчет одного пользователя занимает 1 секунду? (Python)
Уровень: middle · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: АФЛТСистемс
Стек: Python
> Пример ответа
Для обработки 1 миллиона пользователей за 4 часа (14 400 секунд) при времени расчета 1 секунда на пользователя требуется:
1 000 000 / 14 400 ≈ 69,4 → минимум 70 ядер при идеальной параллелизации.
Однако на практике нужно учитывать:
- Накладные расходы на синхронизацию, I/O, GIL (если Python без многопроцессности).
- Закон Амдала: если 10% кода последовательны, ускорение ограничено 10x, и потребуется больше ядер.
- Рекомендация: использовать 80-100 ядер с запасом (например, 4 машины по 24 ядра) и асинхронный подход (asyncio + multiprocessing).
Пример оценки с учетом GIL:
PYTHON# Для CPU-bound задач используем multiprocessing.Poolfrom multiprocessing import Poolimport timedef process_user(user_id):# симуляция расчета 1 секtime.sleep(1)return user_idif __name__ == '__main__':users = range(1_000_000)with Pool(processes=70) as pool:results = pool.map(process_user, users, chunksize=1000)
При 70 ядрах время составит ~4.2 часа (с учетом накладных расходов). Для гарантии 4 часов берите 80-90 ядер.
> Похожие задачи по Python
Для каких задач подходит асинхронный код в Python?
Как обеспечить стабильность сетевых взаимодействий при интеграции с Firebase для пуш-уведомлений?
Что выбрать для кэша рядом с базой данных: Redis, RabbitMQ или Kafka?
Как работает асинхронный код в Python: конкурентный или параллельный, в одном или нескольких потоках?
> Похожие задачи по backend
Для каких задач подходит асинхронный код в Python?
Как обеспечить стабильность сетевых взаимодействий при интеграции с Firebase для пуш-уведомлений?
Что выбрать для кэша рядом с базой данных: Redis, RabbitMQ или Kafka?
Как работает асинхронный код в Python: конкурентный или параллельный, в одном или нескольких потоках?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью