Hi Martin,

I will try your scenario in Mock IaaS and let you know the results

On Thu, May 28, 2015 at 7:49 AM, Lakmal Warusawithana <lak...@wso2.com>
wrote:

> Hi Martin
>
> On Thu, May 28, 2015 at 7:07 AM, Martin Eppel (meppel) <mep...@cisco.com>
> wrote:
>
>>  Hi Lakmal, Udara,
>>
>>
>>
>> I think I found the issue – apparently for group scaling to work a
>> deployment-policy has to be defined at group level (can you confirm this,
>> are there special requirements for the group level deployment policies ?).
>>
>>
>>
>
> Yes, same as individual cartridge scaling, we have to define where to
> scale up etc. Since we need group scaling, we need to define deployment
> policy in group level to say where to scale up the group.
>
>
>>  Once I added it, groups started to scale and create respective VM
>> instances. I am still analyzing the logs but I think I am good  for the
>> moment,
>>
>>
>>
>> Thanks
>>
>>
>>
>> Martin
>>
>>
>>
>> *From:* Martin Eppel (meppel)
>> *Sent:* Wednesday, May 27, 2015 9:06 AM
>> *To:* dev@stratos.apache.org; Udara Liyanage
>>
>> *Subject:* RE: Testing stratos 4.1: group scaling issue
>>
>>
>>
>> Thanks Lakmal, Udara
>>
>>
>>
>> *From:* Lakmal Warusawithana [mailto:lak...@wso2.com <lak...@wso2.com>]
>> *Sent:* Tuesday, May 26, 2015 11:00 PM
>> *To:* dev@stratos.apache.org; Udara Liyanage
>> *Subject:* Re: Testing stratos 4.1: group scaling issue
>>
>>
>>
>> Hi Udara,
>>
>>
>>
>> if you have some cycles, can you work with Martin on this issue.
>>
>>
>>
>> On Wed, May 27, 2015 at 6:02 AM, Martin Eppel (meppel) <mep...@cisco.com>
>> wrote:
>>
>> Attaching the proper deployment-policy-1.json, please disregard the one
>> in the zip file
>>
>>
>>
>> Thanks
>>
>>
>>
>> Martin
>>
>>
>>
>> *From:* Martin Eppel (meppel)
>> *Sent:* Tuesday, May 26, 2015 5:04 PM
>> *To:* dev@stratos.apache.org
>> *Subject:* RE: Testing stratos 4.1: group scaling issue
>>
>>
>>
>>
>>
>> Hi Reka,
>>
>>
>>
>> I tried various way to get the group scaling to work, so far without
>> success.
>>
>> The latest application I created is as shown below [1.]
>>
>>
>>
>> This is what I observe:
>>
>>
>>
>> The application starts up normally, with all (initial) cartridges going
>> active in the proper sequence
>>
>>
>>
>> From the logs:
>>
>> The very first time a scaling decision is made to scale up a group it
>> seems form the log that the max number is already reached:
>>
>> “
>>
>> TID: [0] [STRATOS] [2015-05-26 02:07:51,628]  INFO
>> {org.apache.stratos.autoscaler.rule.RuleLog} -  [scale-up] Trying to scale
>> up over max, hence not scaling up cluster itself and
>>
>>                         notifying to parent for possible group scaling or
>> app bursting.
>>
>>                         [cluster] g-sc-G12-1.c5-2x0.c5.domain [instance
>> id]g-sc-G3-1-1x0-1 [max] 1
>>
>> ”
>>
>>
>>
>> It is followed by a subsequent log entry complaining that the  max limit
>> of 4 has been reached. I am assuming this refers back to the
>> “groupMaxInstances” in the application.json of group with alias "g-sc-G3-1".
>>
>>
>>
>> However, I don’t see any entries which indicate that group instances were
>> successfully created before hitting the max number.
>>
>>
>>
>> “
>>
>> TID: [0] [STRATOS] [2015-05-26 02:07:51,629] DEBUG
>> {org.apache.stratos.autoscaler.rule.RuleTasksDelegator} -  Scaling max out
>> notification is going to the [parentInstance] g-sc-G3-1-1x0-1
>>
>> TID: [0] [STRATOS] [2015-05-26 02:07:51,629] DEBUG
>> {org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor} -
>> Child Scaling max out event received to [group]: g-sc-G3-1-1x0, [network
>> partition]: RegionOne, [event] g-sc-G12-1.c5-2x0.c5.domain, [group
>> instance] g-sc-G3-1-1x0-1
>>
>> TID: [0] [STRATOS] [2015-05-26 02:07:51,629] DEBUG
>> {org.apache.stratos.autoscaler.monitor.cluster.ClusterMonitor} -  Rule
>> executed for: NetworkPartitionContext
>> [id=g-sc-G3-1-1x0-1partitionAlgorithm=one-after-another,
>> minInstanceCount=1, maxInstanceCount=1]
>>
>> TID: [0] [STRATOS] [2015-05-26 02:07:51,629] DEBUG
>> {org.apache.stratos.autoscaler.monitor.component.GroupMonitor} -  Group
>> monitor is running: [group] g-sc-G3-1-1x0
>>
>> TID: [0] [STRATOS] [2015-05-26 02:07:51,629] DEBUG
>> {org.apache.stratos.autoscaler.monitor.component.GroupMonitor} -  Handling
>> group scaling for the [group] g-sc-G3-1-1x0upon a max out event from the
>> children
>>
>> TID: [0] [STRATOS] [2015-05-26 02:07:51,629]  WARN
>> {org.apache.stratos.autoscaler.monitor.component.GroupMonitor} -  [Group]
>> g-sc-G3-1-1x0 has reached the maximum limit as [max] 4. Hence trying to
>> notify the parent.
>>
>> TID: [0] [STRATOS] [2015-05-26 02:07:51,630] DEBUG
>> {org.apache.stratos.autoscaler.monitor.component.ParentComponentMonitor} -
>> Child Scaling max out event received to [group]: g-sc-G2-1-0x0, [network
>> partition]: RegionOne, [event] g-sc-G12-1, [group instance] g-sc-G2-1-0x0-1
>>
>> “
>>
>>
>>
>> I checked the code and added some additional traces and it turns out that
>> the following code is executed:
>>
>>
>>
>> In *GroupMonitor.java-> createInstanceOnDemand()*, with *partitionContext
>> as being null*
>>
>> ….
>>
>> *if (partitionContext != null) {*
>>
>> *                    groupInstanceId =
>> createGroupInstanceAndAddToMonitor(group, parentInstanceContext,*
>>
>> *                            partitionContext,*
>>
>> *                            parentLevelNetworkPartitionContext,*
>>
>> *                            null);*
>>
>> *                    instanceIdsToStart.add(groupInstanceId);*
>>
>> *                } else {*
>>
>> *                    log.warn("[Group] " + group.getUniqueIdentifier() +
>> " has reached " +*
>>
>> *                            "the maximum limit as [max] " + groupMax +*
>>
>> *                            ". Hence trying to notify the parent.");*
>>
>> *                }*
>>
>>
>>
>>
>>
>> Also, no new cartridge instances were created beyond the initial ones.
>>
>>
>>
>> The same “patterns” seems to hold for all other groups within the
>> application, hence no new group instance seems to be created (beyond the
>> initial ones).
>>
>>
>>
>> I am not sure if I am hitting a configuration issue or an issue with
>> group scaling.
>>
>> Please see logs (wso2carbon-8.log debug enabled and artifacts (polices,
>> application.json, cartridge-group.json)) in the attached zip file.
>>
>>
>>
>> At this point I don’t think this is a configuration issue but rather a
>> system issue (please advise if otherwise) , and I will open a JIRA
>>
>>
>>
>> Thanks
>>
>>
>>
>> Martin
>>
>>
>>
>>
>>
>> [1.] application
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *From:* Martin Eppel (meppel)
>> *Sent:* Friday, May 22, 2015 4:42 PM
>> *To:* dev@stratos.apache.org
>> *Subject:* RE: Testing stratos 4.1: group scaling
>>
>>
>>
>> Hi Reka,
>>
>>
>>
>> I created the following application – see [1.].
>>
>>
>>
>> I am able to force the autoscaler to decide to scale up but something in
>> my configuration doesn’t seem to be right since it seems to have reached
>> the maximum of instances. I attached the autoscaling policies, deployment
>> policies, as well as cartridge-group.json, application.json and
>> wso2carbon.log to the email. Any pointers would be highly appreciated to
>> what’s missing or incorrectly configured
>>
>>
>>
>> Thanks
>>
>>
>>
>> Martin
>>
>>
>>
>>
>>
>> TID: [0] [STRATOS] [2015-05-22 23:03:14,865]  INFO
>> {org.apache.stratos.autoscaler.rule.RuleLog} -  [scale-up] Trying to scale
>> up over max, hence not scaling up cluster itself and
>>
>>                         notifying to parent for possible group scaling or
>> app bursting.
>>
>>                         [cluster] g-sc-G12-1.c3-1x0.c3.domain [instance
>> id]g-sc-G2-1-0x0-1 [max] 1
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> [1.] application
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *From:* Reka Thirunavukkarasu [mailto:r...@wso2.com <r...@wso2.com>]
>> *Sent:* Friday, May 22, 2015 10:41 AM
>> *To:* dev
>> *Subject:* Re: Testing stratos 4.1: group scaling
>>
>>
>>
>> Hi Martin,
>>
>> If you set the threshold of load average in the autoscaling policy to
>> like 20-40 range and use the below script[1] to stress a particular VM/Vms,
>> then the CPU usage will get higher. In that case, it will eventually exceed
>> the threshold and then stratos will try to scaleup.
>>
>> If you are using memory consumption, then you can try to increase the
>> memory usage using any of your scenarios and make the stratos to scaleup.
>>
>> However, if you set the threshold as very lower values, then even at the
>> beginning stratos will scaleup as the stats will hit the threshold.
>>
>> [1]
>> https://github.com/lahirus/SetupStratos/blob/master/stress/stress_yes.sh
>>
>> Thanks,
>>
>> Reka
>>
>>
>>
>> On Fri, May 22, 2015 at 10:01 PM, Martin Eppel (meppel) <mep...@cisco.com>
>> wrote:
>>
>> Hi Reka,
>>
>>
>>
>> Thanks for the explanation. I think my question was more directed towards
>> how can I simulate the statistics to exceed the thresholds to trigger the
>> scale up, especially in the context of test automation.
>>
>>
>>
>> So to rephrase it, how can I simulate cartridge statistics events without
>> having to modify the cartridge code ?
>>
>>
>>
>> Thanks
>>
>>
>>
>> Martin
>>
>>
>>
>> *From:* Reka Thirunavukkarasu [mailto:r...@wso2.com]
>> *Sent:* Thursday, May 21, 2015 9:59 PM
>> *To:* dev
>> *Subject:* Re: Testing stratos 4.1: group scaling
>>
>>
>>
>> Hi Martin,
>>
>> Let me explain how group scaling works in a high level manner. Say, it a
>> group(G1) has two independent clusters(no dependent scaling) C1 and C2.
>>
>> G1 - min 1 max5
>>
>> C1 - min 1 max2 (applies per cluster instance)
>>
>> C2 - min 2 max 3 (applies per cluster instance)
>>
>> Where C1 and C2 are children of G1. At the beginning, we will create one
>> group instance say G11 and corresponding cluster instance for C1 and C2 of
>> G11 will get created. Then each C1 and C2's cluster instance will receive
>> stats per cluster instance wise. If the stats is greater than the
>> threshold, then as C1 and C2's cluster instance have room to scaleup by one
>> more instance according min and max configuration, each clusters will get
>> scaleup until it hits the max. Once max is reached, if the stats is still
>> high, then when C1 or C2 doesn't have space to scaleup, it will notify the
>> parent (G1). So, G1 will check whether it has group scaling capability. If
>> so, it will try to create new group instance. If no group scaling enable,
>> it will notify its parent. If the eventual parent application, then
>> application will try to get busted if there is space.
>>
>> If you mention your configuration as below, then when the stats is
>> higher, group scaling will immediately happen as C1 and C2 don't have space
>> to scaleup:
>>
>> G1 - min 1 max5
>> C1 - min 1 max1
>> C2 - min 2 max 2
>>
>> Hope above points will help you to test the group scaling.
>>
>>
>>
>> Thanks,
>>
>> Reka
>>
>>
>>
>>
>>
>> On Fri, May 22, 2015 at 5:20 AM, Martin Eppel (meppel) <mep...@cisco.com>
>> wrote:
>>
>> Hi,
>>
>>
>>
>> I am setting up a test application to test group scaling (following the
>> example from the 4.1 Wiki -
>> https://cwiki.apache.org/confluence/display/STRATOS/4.1.0+Group+Scaling+Application+on+OpenStack).
>>
>>
>>
>>
>> I was wondering if you have any suggestion how to actually force /
>> simulate the conditions to force a group to scale up ?  How does it work in
>> the sample application (to get the group to scale up) ?
>>
>>
>>
>> Btw I am using open stack as IaaS, not the Mock IaaS.
>>
>>
>>
>> Thanks
>>
>>
>>
>> Martin
>>
>>
>>
>>
>>
>>
>> --
>>
>> Reka Thirunavukkarasu
>> Senior Software Engineer,
>> WSO2, Inc.:http://wso2.com,
>>
>> Mobile: +94776442007
>>
>>
>>
>>
>>
>>
>> --
>>
>> Reka Thirunavukkarasu
>> Senior Software Engineer,
>> WSO2, Inc.:http://wso2.com,
>>
>> Mobile: +94776442007
>>
>>
>>
>>
>>
>>
>>
>> --
>>
>> Lakmal Warusawithana
>>
>> Vice President, Apache Stratos
>>
>> Director - Cloud Architecture; WSO2 Inc.
>>
>> Mobile : +94714289692
>>
>> Blog : http://lakmalsview.blogspot.com/
>>
>
>
>
> --
> Lakmal Warusawithana
> Vice President, Apache Stratos
> Director - Cloud Architecture; WSO2 Inc.
> Mobile : +94714289692
> Blog : http://lakmalsview.blogspot.com/
>
>


-- 

Udara Liyanage
Software Engineer
WSO2, Inc.: http://wso2.com
lean. enterprise. middleware

web: http://udaraliyanage.wordpress.com
phone: +94 71 443 6897

Reply via email to