If we are to go in that path, we need to collect stats from LB such as response time. In that case, we might not even need to consider RIF count. I think we should make this another dimension :-)
On Thu, Jun 5, 2014 at 10:50 PM, Akila Ravihansa Perera <raviha...@wso2.com> wrote: > Hi, > > Sounds good to me :) > > I wouldn't rely on any user input on number of concurrent requests > that can be handled by a cartridge instance. A user has no way of > knowing how the instance would perform in a production environment. > Things could get messy, some service calls may take too long to > respond than initially anticipated by the user. > > So my suggestion was that AS should predict this value. And LB should > be the entity that will monitor how requests are being handled by > cartridge instances and help AS to decide what would be the ideal > concurrent requests count per each instance. > > On Thu, Jun 5, 2014 at 10:24 PM, Lahiru Sandaruwan <lahi...@wso2.com> > wrote: > > Hi, > > > > Good suggestion on considering the feedback. > > > > The number of requests successfully served in particular period will be a > > good value for feedback(What else?). We can take this value from LB > itself. > > > > Also how about giving the freedom to user, whether he want to give the > > initial value("number of concurrent requests that can be handled by an > > cartridge Instance") or not? > > > > On Thu, Jun 5, 2014 at 5:27 PM, Akila Ravihansa Perera < > raviha...@wso2.com> > > wrote: > >> > >> Hi Nirmal, > >> > >> I only gave a simple example for calculating the number of instances > >> required. Taking the avg for per instance ideal RIF is a naive method > >> of calculating it. However, the main idea is that rather than taking > >> user input for per instance RIF, AS will predict this by looking at > >> current active instances, avg RIF defined in policy and predicted RIF. > >> > >> > >> This is a matter of separating concerns for LB and AS. IMHO, it is up > >> to the LB to decide whether an instance can handle a certain level of > >> concurrent requests. > >> > >> I'm still unclear about this user input parameter, "Number of rif than > >> an instance could handle", that Asiri has mentioned. Could you please > >> elaborate more on that? > > > > > > In Asiri's proposal, user input is "number of concurrent requests that > can > > be handled by an cartridge Instance". > >> > >> > >> Thanks. > >> > >> On Thu, Jun 5, 2014 at 12:07 PM, Nirmal Fernando < > nirmal070...@gmail.com> > >> wrote: > >> > Hi Akila, > >> > > >> > How did you come up with the value of 75 (150/2 ?)? What's the basis > for > >> > assuming that all 150 requests are served correctly? (Server might be > >> > capable of handling only 20 concurrent requests at a moment. > >> > > >> > > >> > On Thu, Jun 5, 2014 at 12:00 PM, Akila Ravihansa Perera > >> > <raviha...@wso2.com> > >> > wrote: > >> >> > >> >> Hi Asiri, > >> >> > >> >> Great work on the proposal. I have some few concerns/suggestions. > >> >> > >> >> RIF metric is calculated by taking the number of requests currently > in > >> >> the LB's queue, AFAIK. Therefore, rather than taking input for rif > >> >> count that an instance could handle, it would make sense to calculate > >> >> the number of instances required to maintain the average RIF. > >> >> > >> >> For eg. let's say we have 2 instances, and RIF avg is 150, and > >> >> predicted RIF goes to 170. It means using 2 instances, one instance > >> >> may have to take 85 RIF. But avg RIF for one instance should ideally > >> >> be 75. Then we can calculate how many instances we need to maintain > 75 > >> >> RIF per instance. > >> >> > >> >> This is merely a suggestion. Reason is I don't think taking user > input > >> >> for RIF per instance would make much sense, IMHO. > >> >> > >> >> Thanks. > >> >> > >> >> On Thu, Jun 5, 2014 at 9:51 AM, Asiri Liyana Arachchi > >> >> <asiriw...@gmail.com> wrote: > >> >> > 1. Improve the auto-scaling to predict the number of instances > >> >> > needed. > >> >> > > >> >> > Starting a new thread with suggestions to predict the number of > >> >> > instances. > >> >> > > >> >> > There are three factors that are being considered when auto > scaling. > >> >> > Requests in flight (rif) > >> >> > Memory Consumption > >> >> > Load average. > >> >> > > >> >> > For requests in flight. > >> >> > > >> >> > User input - Number of rif than an instance could handle. > >> >> > > >> >> > Once it's given we can simply calculate the required number of > >> >> > instances > >> >> > to > >> >> > spawn or terminate. > >> >> > > >> >> > For an e.g. > >> >> > Number of rif that an instance could handle - 50 > >> >> > Predicted rif =170 > >> >> > Required instances = 170 /50 > >> >> > = 4 (taking the ceiling value ) > >> >> > > >> >> > If the current number of instances is 2 another 4-2 have to be > >> >> > spawned. > >> >> > If the current number of instances is 6 , the number of instances > >> >> > that > >> >> > should be terminated is 4-6 > >> >> > > >> >> > When rounding of values ( number of instances ) we can either > follow > >> >> > the > >> >> > way > >> >> > amazon did it for percentage based auto scaling [1] or we can let > >> >> > user > >> >> > decide (in autoscaling policy) whether to use ceiling or floor > value > >> >> > to > >> >> > round off depending on his server availability requirements. > Welcome > >> >> > your > >> >> > thoughts on this. > >> >> > > >> >> > Here is the project's work that i'm supposed to complete. > >> >> > > >> >> > 1) setting up apache stratos on openstack. > >> >> > 2) research on how to use load average / memory consumption for > >> >> > instance > >> >> > calculation. > >> >> > 3) Getting community feed back and implementation. > >> >> > 4) Research on improving prediction algorithm. > >> >> > 5) Schedule based autoscaling. > >> >> > > >> >> > Currently working on setting up apache stratos.(for testing) > >> >> > > >> >> > [1] > >> >> > > >> >> > > >> >> > > http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-scale-based-on-demand.html > >> >> > >> >> > >> >> > >> >> -- > >> >> Akila Ravihansa Perera > >> >> Software Engineer > >> >> WSO2 Inc. > >> >> http://wso2.com > >> >> > >> >> Phone: +94 77 64 154 38 > >> >> Blog: http://ravihansa3000.blogspot.com > >> > > >> > > >> > > >> > > >> > -- > >> > Best Regards, > >> > Nirmal > >> > > >> > Nirmal Fernando. > >> > PPMC Member & Committer of Apache Stratos, > >> > Senior Software Engineer, WSO2 Inc. > >> > > >> > Blog: http://nirmalfdo.blogspot.com/ > >> > >> > >> > >> -- > >> Akila Ravihansa Perera > >> Software Engineer > >> WSO2 Inc. > >> http://wso2.com > >> > >> Phone: +94 77 64 154 38 > >> Blog: http://ravihansa3000.blogspot.com > > > > > > > > > > -- > > -- > > Lahiru Sandaruwan > > Committer and PMC member, Apache Stratos, > > Senior Software Engineer, > > WSO2 Inc., http://wso2.com > > lean.enterprise.middleware > > > > email: lahi...@wso2.com cell: (+94) 773 325 954 > > blog: http://lahiruwrites.blogspot.com/ > > twitter: http://twitter.com/lahirus > > linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146 > > > > > > -- > Akila Ravihansa Perera > Software Engineer > WSO2 Inc. > http://wso2.com > > Phone: +94 77 64 154 38 > Blog: http://ravihansa3000.blogspot.com > -- Best Regards, Nirmal Nirmal Fernando. PPMC Member & Committer of Apache Stratos, Senior Software Engineer, WSO2 Inc. Blog: http://nirmalfdo.blogspot.com/