Configuring Concurrency
This feature is supported only by FunctionGraph v2.
Overview
FunctionGraph allows you to configure the maximum number of instances that can be run for a function at a time. The number of instances is limited to prevent resource exhaustion, ensure that each instance has sufficient resources to run, and improve processing efficiency.
Configuring Function Concurrency
- Log in to the FunctionGraph console. In the navigation pane, choose Functions > Function List.
- Click the function to be configured to go to the function details page.
- Choose Configuration > Concurrency.
Set parameters by referring to Table 1 and click Save.
Figure 1 Concurrency configuration
Table 1 Description Parameter
Description
Max. Requests per Instance
Explanation:
Number of concurrent requests supported by a single instance.
Restrictions:
- This parameter is only available for HTTP functions created from scratch, HTTP functions based on templates, and container image-based functions.
- If this parameter is set to 1, this parameter is not displayed and cannot be modified. If this parameter is set to a value greater than 1, this parameter is still displayed.
Value range:
1–1000
Default value:
1
Max. Instances per Function
Explanation:
Maximum number of on-demand instances that can be enabled for a function.
Restrictions:
- Requests that exceed the processing capability of instances will be discarded.
- Errors caused by excessive requests will not be displayed in function logs. You can obtain error details by referring to Configuring Asynchronous Notification Policy.
Value range:
-1 or an integer ranging from 1 to 1000. The value –1 indicates that the number of instances is not limited.
Default value:
400
Configuration Constraints
- For Python functions, threads on an instance are bound to one core due to the Python Global Interpreter Lock (GIL) lock. As a result, concurrent requests can only be processed using the single core, not multiple cores. The function processing performance cannot be improved even if larger resource specifications are configured.
- For Node.js functions, the single-process single-thread processing of the V8 engine results in processing of concurrent requests only using a single core, not multiple cores. The function processing performance cannot be improved even if larger resource specifications are configured.