-
I have a function app running on consumption that consumes messages from a service bus queue, signals an entity (12 or so entities perform some aggregations), and the entity sends a http request to a third-party (much more complexity, but you get the gist). When looking at the live metrics from app insights, I'm seeing roughly 60-90 requests per seconds and 18 or so server instances handling the load with each instance somewhere between 5-12% CPU utilization. I have the partitionCount set to 8 in the host.json and I'm wondering if I should adjust the maxConcurrentOrchestratorFunctions to better utilize my resources or maybe the partitionCount is set to high? It's difficult to know what is influencing the scaling behavior but for the work that is occurring it seems to be a bit to high IMO. Would really appreciate any thoughts or suggestions on where else to look! Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 12 replies
-
If you're seeing 60-90 requests per second and 18 or so app instances, then I'm guessing you're processing Service Bus queues much faster than your entities. The low CPU% likely means that the entities cannot dequeue and/or process the signals as quickly as they are being enqueued.
As you mentioned in another reply, if you signal up to 100K distinct entities per day, then increasing If your entity operations are really fast and aren't slowing things down with I/O operations, then you could also consider increasing |
Beta Was this translation helpful? Give feedback.
-
thanks chris! just to be clear when i say 12 entities i am not talking specific instances. i haven’t looked at that specifically but well over 100K distinct per day on sale days. we receive over 500K-1 million service bus messages per day. |
Beta Was this translation helpful? Give feedback.
-
@mpaul31 just to be clear, is your objective to decrease the amount of online app instances, yet retain the current performance/throughput you have? |
Beta Was this translation helpful? Give feedback.
If you're seeing 60-90 requests per second and 18 or so app instances, then I'm guessing you're processing Service Bus queues much faster than your entities. The low CPU% likely means that the entities cannot dequeue and/or process the signals as quickly as they are being enqueued.
Given the low density of entities to partitions, adjustingmaxConcurrentOrchestratorFunctions
is not likely going to have much effect. You could lowerpartitionCount
, but that might not help much since it seems the Service Bus load is driving the scale out more-so than entity load (entity load won't cause you to scale higher than your partition count).As you mentioned in another reply, if you signal up to 100K…