Evoml 1.12.0 main internal engineering goals #2
Replies: 1 comment 1 reply
-
Black widow memory leaksIt seems we're facing the same kind of problems arlready addressed on thor-file-api. This has to do with the nature of some features that are manipulating DataFrame objects to provide some results and the nature of python memory management itself. Turns out once python allocates memory for the python interpreter in use (python process) even when the usage of the objects referencing that memory is finished, memory is still retained on the python process and not given back to the Operative System. This causes a side-effect when black-widow container, due to its nature, keeps N python processes alive all the time as the configured number of uvicorn workers/threads. Each thread will process requests, that eventually will deal with DataFrame management, some of them might operate over big datasets (5GB as the tests performed that made this issue evident), and after the feature is execute such memory will be retained for usage by the python process later on. This behaviour stacks up until black-widow becomes basically a memory exhauster. Potential solution |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
All reactions