-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scaling lag in Functions on ACA #33
Comments
@KaiWalter - lets track this discussion in this thread |
Is there a way to also scale Fun-on-ACA to minimal 1 scale unit? |
@kaibocai - Does this mean you want to set max scale instances to '1'? cc// @krishnajaju |
The pattern with the gap suggests that maybe the 2 other Functions need to be scaled up from 0 to something to pick up ingress from queues. Hence I would want to try with minScale=1 |
Hi @KaiWalter, |
Sure @krishna-kariya So the experiment is described and implemented in this repo - please check out README Basically I am comparing scaling behavior between Function deployed as regular ACA container ( If you look at the graph above, I would expect the same scaling behavior: top graph shows func* variant scale increasing and descreasing as expexted and botton graph shows acaf* first scaling up the distributor/dispatcher part, then a gap and the scaling up receiver parts. Container App names:
Subscription Id I could share in a private conversation e.g. on Discord or email. Is this information sufficient? |
Hi @KaiWalter , One difference in code for both deployments is |
@krishna-kariya I will convert func also to dotnet-isolated and be back here. |
@krishna-kariya with branch https://github.com/KaiWalter/message-distribution/tree/func-isolated I also changed the Functions in ACA Containers func variant to dotnet-isolated, but that had no effect. func stilll peeking once while acaf Functions on Container Apps shows this scaling gap |
@KaiWalter, it looks like the default resources used by single Functions on ACA instance is more compared to resources used by single Container App instance with functions image. Resource allocation for single instance:
Initially, some default numbers of nodes are allocated for any ACA environment. During scaling, ACA uses these nodes to create app instances. For container apps scaling, the default number of nodes are sufficient as it uses less cpu, memory per instance. For function apps scaling, the default number of nodes is not sufficient and thus, ACA environment requests more nodes in backend. After new nodes are available to ACA environment, it uses them to create remaining instances for Function app. It takes some time to fetch new nodes and create remaining instances, therefore, we see a gap in processing between both deployments. |
@KaiWalter , Do you have any further questions? |
@krishna-kariya sorry for getting back so late - I was enjoying my summer vacation. |
@KaiWalter for functions on ACA you will soon be able to configure CPU/memory using workload profile types (both Consumption or Dedicated) . With this you should be able to choose configs as you chose for ACA and get similar performance |
Hi I am comparing scaling behavior for various .NET services flavors here https://github.com/KaiWalter/message-distribution#tldr-conclusionand see that there seems to be a gap, before Functions on ACA pick up items from Service Bus queues. Is that to be expected?
![image](https://private-user-images.githubusercontent.com/45637559/259134944-a99863fd-1353-4b64-bd00-55b2f70d94e6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk0MTk2MjQsIm5iZiI6MTcxOTQxOTMyNCwicGF0aCI6Ii80NTYzNzU1OS8yNTkxMzQ5NDQtYTk5ODYzZmQtMTM1My00YjY0LWJkMDAtNTViMmY3MGQ5NGU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI2VDE2Mjg0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc0M2YyMmRkMDY1MWM3MmQyYzExMzhhMjljZDVmNDFhMWNmMWJhNDY1MzQxOWU5ODY2ZDA4ZTdlZTI3NzgxN2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.vw4M37CHXQa1s7S94wJliJt2aiIQsWYSFQCj7TELRFE)
GitHub - KaiWalter/message-distribution](https://github.com/KaiWalter/message-distribution)
The text was updated successfully, but these errors were encountered: