@D ,
Thanks for posting your query in Q&A forum.
(1) I have 100 HTTP functions in my single Azure function app, Will they all run on a single Virtual Machine?
From the above conversation, I got to know that your function is in Premium plan. For premium plan, the scaling is controlled by the scale controller. Depending upon the incoming http traffic and the existing instances, the scale controller would decide to increase/ decrease the number of instances. So even if you have 100 functions and the incoming load is very less and the exisiting VM can handle this load, then there wont be any scaling. In other words, it can continue to run in single VM given the fact that the single VM is able to handle the load.
(2) If I call all 100 functions simultaneously from my different applications, will these all 100 functions use the same memory of the VM?
The memory is allocated to the Function app(w3wp.exe process) on the whole and not to individual functions. Lets say the function app is running on 2 instances (1 pre-warmed instance and another instance), function app would have 3.5GB + 3.5 GB (EP1 plan) to consume. As you mentioned, all 100 functions would be using the same memory as they are all under 1 Function app. If the memory utilization is high, the scale controller would add another instance.
(3) Does memory is allocated to each function or to the full-function app?
Answered in (2)
(4) What is the meaning of a function instance? If I make 10 HTTP calls to a single HTTP function, How many instances will be created for that function?
You can consider an instance to a VM running the Function app. 2 function instances means there are 2 vms running the Function app. Again, scaling is completely controlled by scale controller, for premium plan you can set max burst,minimum instances and always ready instances. To answer your question specifically, 10 requests can be easily handled by single instance.