CPU-bound пайплайн распараллелен через multiprocessing, но под нагрузкой стал работать медленнее: рост RSS, высокий overhead и низкая утилизация CPU. Как диагностировать и починить?
Померить накладные расходы на IPC/пиклинг (профилировщики, замеры времени map/submit). Укрупнить задачи (batch/chunksize), передавать большие данные через shared memory (multiprocessing.shared_memory, NumPy shared arrays / mmap) вместо копий, инициализировать тяжёлые объекты один раз в initializer воркера. Ограничить число процессов до числа ядер, избегать возврата больших результатов (писать в общий sink).
Библиотека собеса по Python
Post #1198
1.21K
- 👍 2