This is after i increased the server to 8 core and 16 GB RAM on server
When the server is idel it will take 25 seconds to start and 8 sec to get the server response ready.
So in total the total response time is 33 seconds
Else it will take only 8 seconds to get the response for a simple http://localhost:8081/sdk call
Usually, the long startup time (ie. 25 seconds) occurs whenever the Rhino.Compute process has to spin up the child processes (Compute.Geometry). The default configuration is for Rhino.Compute to spin up 4 children… which is like starting up 4 different instances of Rhino and Grasshopper. If you have 3rd party plugins, then this can add to the start up time as well. You can modify the number of children that get started (reducing this to 1 for instance) would reduce this start up time… but then you would lose the benefit of having multiple children being able to work on simultaneous requests (ie. parallelization). Once the children have been started, then the requests should be returned as quickly as possible (ie. 8 seconds, although that seems long for a simple request to the /sdk endpoint). One trick that I have seen is that some people will send a “dummy” request to the
/activechildren endpoint. This endpoint simply returns an integer value telling you how many children are currently working. However, if there aren’t any children currently spun up, hitting this endpoint will cause Rhino.Compute to begin the process of spinning up all of the children so that they are ready. So, some people will hit this endpoint before they know they’re going to need an actual quick response… so that the children are already working and waiting for a valid request. Does this help?