You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am using pemja as the Python script execution engine in a Conductor-based orchestration system. However, when the QPS is very high, meaning under high concurrency scenarios, the execution time for a Python script calculating the sum of squares (N=1000000) becomes extremely high. The time taken increases linearly over time, eventually reaching tens of seconds. I have tried both Python 3.8 and 3.11 versions, and also attempted switching ExecType to SUB_INTERPRETER, but the results did not vary much.
Additionally, through JVM monitoring, I observed that most threads in the thread pool are in a blocked state.
Additionally, in some of our actual business scripts (which include some batch parameter conversion logic without any I/O operations), the execution time can even reach up to hundreds of seconds. We have tried using Groovy, and the execution time for Groovy scripts is less than 1 second.
In theory, SUB_INTERPRETER should offer better performance, but in our use case, we did not observe any significant improvement. In some cases, there was even a performance degradation. Could you please clarify if there are any prerequisites for achieving performance improvements with SUB_INTERPRETER? Additionally, could you provide some best practice examples on how to configure and use pemja effectively in high concurrency scenarios?
The text was updated successfully, but these errors were encountered:
I am using pemja as the Python script execution engine in a Conductor-based orchestration system. However, when the QPS is very high, meaning under high concurrency scenarios, the execution time for a Python script calculating the sum of squares (N=1000000) becomes extremely high. The time taken increases linearly over time, eventually reaching tens of seconds. I have tried both Python 3.8 and 3.11 versions, and also attempted switching ExecType to SUB_INTERPRETER, but the results did not vary much.
Additionally, through JVM monitoring, I observed that most threads in the thread pool are in a blocked state.
Additionally, in some of our actual business scripts (which include some batch parameter conversion logic without any I/O operations), the execution time can even reach up to hundreds of seconds. We have tried using Groovy, and the execution time for Groovy scripts is less than 1 second.
In theory, SUB_INTERPRETER should offer better performance, but in our use case, we did not observe any significant improvement. In some cases, there was even a performance degradation. Could you please clarify if there are any prerequisites for achieving performance improvements with SUB_INTERPRETER? Additionally, could you provide some best practice examples on how to configure and use pemja effectively in high concurrency scenarios?
The text was updated successfully, but these errors were encountered: