stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nirmal Fernando <nirmal070...@gmail.com>
Subject Re: Improvements to Autoscaling in Apache Stratos [gsoc]
Date Thu, 05 Jun 2014 17:29:55 GMT
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 <ravihansa@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 <lahirus@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 <
> ravihansa@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 <
> nirmal070125@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
> >> > <ravihansa@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
> >> >> <asiriwork@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: lahirus@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/

Mime
View raw message