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