)]}'
{"specs/mitaka/approved/workload-balance-migration-strategy.rst":[{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"677388b75c7db656915cb821349619e7e61f5ca3","unresolved":false,"context_lines":[{"line_number":25,"context_line":"In current Data Center, VM workloads on each server may not balance, some"},{"line_number":26,"context_line":"are extremely high, some are idle, which will reduce the cooling efficiency,"},{"line_number":27,"context_line":"this strategy will balance the workloads when the VM workloads of server"},{"line_number":28,"context_line":"reaches threshold."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_6dba170c","line":28,"updated":"2016-02-16 11:10:26.000000000","message":"Can you specify if the workload balance will be done through live migration / cold ?\n\nDo you plan to use https://github.com/openstack/watcher/blob/master/watcher/applier/actions/migration.py ?","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d2844b89cd093dab0a41a4f7747d9d56f77300e8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"In current Data Center, VM workloads on each server may not balance, some"},{"line_number":26,"context_line":"are extremely high, some are idle, which will reduce the cooling efficiency,"},{"line_number":27,"context_line":"this strategy will balance the workloads when the VM workloads of server"},{"line_number":28,"context_line":"reaches threshold."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_d46742b5","line":28,"in_reply_to":"dae33548_6dba170c","updated":"2016-02-18 04:28:35.000000000","message":"It\u0027s better to be done through live migration, it\u0027s faster and make less affect. I will add this to this spec.\nIt will use watcher.decision_engine.meta_action.migrate to generate action plan.","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"677388b75c7db656915cb821349619e7e61f5ca3","unresolved":false,"context_lines":[{"line_number":26,"context_line":"are extremely high, some are idle, which will reduce the cooling efficiency,"},{"line_number":27,"context_line":"this strategy will balance the workloads when the VM workloads of server"},{"line_number":28,"context_line":"reaches threshold."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"----------"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_10272465","line":29,"updated":"2016-02-16 11:10:26.000000000","message":"The live migration mechanism can provide a significant benefit to move a virtual machine but depending of the workload characteristics and VM configuration the migration of a VM can cost more than let the VM in the same place.\n\nare you thinking about to take into account the migration overhead ?","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d2844b89cd093dab0a41a4f7747d9d56f77300e8","unresolved":false,"context_lines":[{"line_number":26,"context_line":"are extremely high, some are idle, which will reduce the cooling efficiency,"},{"line_number":27,"context_line":"this strategy will balance the workloads when the VM workloads of server"},{"line_number":28,"context_line":"reaches threshold."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"----------"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_d49aa26d","line":29,"in_reply_to":"dae33548_10272465","updated":"2016-02-18 04:28:35.000000000","message":"This is a good point.\nHere, we only consider the long term effection, because live migration time cost is just several minutes, we can ignore that.","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"677388b75c7db656915cb821349619e7e61f5ca3","unresolved":false,"context_lines":[{"line_number":27,"context_line":"this strategy will balance the workloads when the VM workloads of server"},{"line_number":28,"context_line":"reaches threshold."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"----------"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"As an administrator, I want to be able to trigger an audit that controls the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_b063d840","line":30,"updated":"2016-02-16 11:10:26.000000000","message":"we will soon provide a efficacy indicator to the cloud provider. You can take a look to this blueprint: \nhttps://blueprints.launchpad.net/watcher/+spec/efficacy-indicator\n\nDo you have a idea of the indicators to evaluate your algorithm ?","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d2844b89cd093dab0a41a4f7747d9d56f77300e8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"this strategy will balance the workloads when the VM workloads of server"},{"line_number":28,"context_line":"reaches threshold."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"----------"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"As an administrator, I want to be able to trigger an audit that controls the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_f491a6f2","line":30,"in_reply_to":"dae33548_b063d840","updated":"2016-02-18 04:28:35.000000000","message":"Thanks to mention that.\nWe have an indicator named Thermal Stress indicator to measure the status of servers, it\u0027s multiple objective, I am not sure if it can be used to evaluate this algorithm.\nlet me talk about this with team.","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"677388b75c7db656915cb821349619e7e61f5ca3","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* balance the workloads on each server."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* improve the cooling efficiency."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Project Priority"},{"line_number":43,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_4d275312","line":40,"updated":"2016-02-16 11:10:26.000000000","message":"are you thinking about determine the number of required migration to improve the cooling efficiency or just migrate some VM and then look at the cooling efficiency ?","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d2844b89cd093dab0a41a4f7747d9d56f77300e8","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* balance the workloads on each server."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"* improve the cooling efficiency."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Project Priority"},{"line_number":43,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_abf855c4","line":40,"in_reply_to":"dae33548_4d275312","updated":"2016-02-18 04:28:35.000000000","message":"The cooling efficiency is indirect benifit.\nI will remove it if it is confusing.","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"677388b75c7db656915cb821349619e7e61f5ca3","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Use the Nova objects framework to get free CPU/Memory/Disk of hypervisors."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Use the Ceilometer client to get VM \"cpu_util\" to calculate the workloads."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"},{"line_number":63,"context_line":"  will filter the viable targets according to the free resource information"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_8d6ddb9a","line":60,"updated":"2016-02-16 11:10:26.000000000","message":"Can you share with us the pseudo code of your algorithm ?","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d2844b89cd093dab0a41a4f7747d9d56f77300e8","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Use the Nova objects framework to get free CPU/Memory/Disk of hypervisors."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Use the Ceilometer client to get VM \"cpu_util\" to calculate the workloads."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"},{"line_number":63,"context_line":"  will filter the viable targets according to the free resource information"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_9a8841c7","line":60,"in_reply_to":"dae33548_8d6ddb9a","updated":"2016-02-18 04:28:35.000000000","message":"do you mean put the pseudo code in the spec?","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"677388b75c7db656915cb821349619e7e61f5ca3","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Use the Ceilometer client to get VM \"cpu_util\" to calculate the workloads."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"},{"line_number":63,"context_line":"  will filter the viable targets according to the free resource information"},{"line_number":64,"context_line":"  of hypervisors from previous step and choose the one with lowest workloads."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_8d631bdc","line":62,"updated":"2016-02-16 11:10:26.000000000","message":"How do you think the strategy will select and calculate the time window in order to determine if a workload is over a threshold ?","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d2844b89cd093dab0a41a4f7747d9d56f77300e8","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Use the Ceilometer client to get VM \"cpu_util\" to calculate the workloads."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"},{"line_number":63,"context_line":"  will filter the viable targets according to the free resource information"},{"line_number":64,"context_line":"  of hypervisors from previous step and choose the one with lowest workloads."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_faa86d22","line":62,"in_reply_to":"dae33548_8d631bdc","updated":"2016-02-18 04:28:35.000000000","message":"The time window is about 5 minutes here, it uses ceilometer  aggregation API to get the avg value","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"677388b75c7db656915cb821349619e7e61f5ca3","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"},{"line_number":63,"context_line":"  will filter the viable targets according to the free resource information"},{"line_number":64,"context_line":"  of hypervisors from previous step and choose the one with lowest workloads."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_4d5f5341","line":64,"updated":"2016-02-16 11:10:26.000000000","message":"We will soon have the function select_destinations to get a list of viable hosts and then rank them with the Watcher strategy\n\nYou can add a link to the select-destinations-filters blueprint.\n\nhttps://blueprints.launchpad.net/watcher/+spec/select-destinations-filter","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d2844b89cd093dab0a41a4f7747d9d56f77300e8","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"},{"line_number":63,"context_line":"  will filter the viable targets according to the free resource information"},{"line_number":64,"context_line":"  of hypervisors from previous step and choose the one with lowest workloads."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_746bd6f1","line":64,"in_reply_to":"dae33548_4d5f5341","updated":"2016-02-18 04:28:35.000000000","message":"Good to know. \nI will add this.","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"677388b75c7db656915cb821349619e7e61f5ca3","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"1. function to calculate the total VM workloads of hypervisors."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"2. function to filter servers by Nova basic metrics(free CPU/Memory/Disk)."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"3. Rewrite execute function to add the algorithm to detect the threshold and"},{"line_number":138,"context_line":"   to choose the target hypervisors, generate action plans."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_ed8627da","line":135,"updated":"2016-02-16 11:10:26.000000000","message":"Do you need temperature ?","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d2844b89cd093dab0a41a4f7747d9d56f77300e8","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"1. function to calculate the total VM workloads of hypervisors."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"2. function to filter servers by Nova basic metrics(free CPU/Memory/Disk)."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"3. Rewrite execute function to add the algorithm to detect the threshold and"},{"line_number":138,"context_line":"   to choose the target hypervisors, generate action plans."}],"source_content_type":"text/x-rst","patch_set":2,"id":"dae33548_5447b276","line":135,"in_reply_to":"dae33548_ed8627da","updated":"2016-02-18 04:28:35.000000000","message":"Here we don\u0027t need temperature.\nFor this algorithm is only target to the VMs\u0027 workload.","commit_id":"fa9a2db06f044b5fa0bbee1d0369580e221c06e9"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"7b19f696adc39bf0097e8815a27f02a54fcae602","unresolved":false,"context_lines":[{"line_number":15,"context_line":"total VM workloads of each server balance, when the total VM workloads of"},{"line_number":16,"context_line":"server reaches threshold."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Note: \"server\" in this document means \"hypervisor\"."},{"line_number":19,"context_line":"       VM workloads means how much CPUs the VM instance fully used, eg a VM"},{"line_number":20,"context_line":"       instance has 4 CPUs, the VM workload range is [0.00 , 4.00]"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae84128_4c5807fb","line":18,"range":{"start_line":18,"start_character":49,"end_line":18,"end_character":51},"updated":"2016-02-25 16:36:49.000000000","message":"Can we just replace server everywhere then with hypervisor? I think this would be less ambiguous.","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d26284c5c70b7770738128e6e174ec3783b8a14c","unresolved":false,"context_lines":[{"line_number":15,"context_line":"total VM workloads of each server balance, when the total VM workloads of"},{"line_number":16,"context_line":"server reaches threshold."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Note: \"server\" in this document means \"hypervisor\"."},{"line_number":19,"context_line":"       VM workloads means how much CPUs the VM instance fully used, eg a VM"},{"line_number":20,"context_line":"       instance has 4 CPUs, the VM workload range is [0.00 , 4.00]"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aed3d3a_302c1f4a","line":18,"range":{"start_line":18,"start_character":49,"end_line":18,"end_character":51},"in_reply_to":"bae84128_4c5807fb","updated":"2016-03-02 06:52:47.000000000","message":"sure","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"7b19f696adc39bf0097e8815a27f02a54fcae602","unresolved":false,"context_lines":[{"line_number":25,"context_line":"In current Data Center, VM workloads on each server may not balance, some"},{"line_number":26,"context_line":"are extremely high, some are idle, which will reduce the cooling efficiency,"},{"line_number":27,"context_line":"this strategy will balance the workloads when the VM workloads of server"},{"line_number":28,"context_line":"reaches threshold. It\u0027s better to enable live migration instead of block"},{"line_number":29,"context_line":"migration, for it costs less in time."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae84128_4cdda741","line":29,"range":{"start_line":28,"start_character":19,"end_line":29,"end_character":36},"updated":"2016-02-25 16:36:49.000000000","message":"Is this a decision of the strategy or the applier?","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d26284c5c70b7770738128e6e174ec3783b8a14c","unresolved":false,"context_lines":[{"line_number":25,"context_line":"In current Data Center, VM workloads on each server may not balance, some"},{"line_number":26,"context_line":"are extremely high, some are idle, which will reduce the cooling efficiency,"},{"line_number":27,"context_line":"this strategy will balance the workloads when the VM workloads of server"},{"line_number":28,"context_line":"reaches threshold. It\u0027s better to enable live migration instead of block"},{"line_number":29,"context_line":"migration, for it costs less in time."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aed3d3a_30a1bfaa","line":29,"range":{"start_line":28,"start_character":19,"end_line":29,"end_character":36},"in_reply_to":"bae84128_4cdda741","updated":"2016-03-02 06:52:47.000000000","message":"Strategy can makes that decision, if live migration is supported.\nBlock migration costs too long time.","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"7b19f696adc39bf0097e8815a27f02a54fcae602","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"----------"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"As an administrator, I want to be able to trigger an audit that controls the"},{"line_number":35,"context_line":"perform workload load balancing."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In order to:"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae84128_0ca1dfa9","line":35,"range":{"start_line":34,"start_character":64,"end_line":35,"end_character":31},"updated":"2016-02-25 16:36:49.000000000","message":"It is not clear what this means - please rephrase.","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d26284c5c70b7770738128e6e174ec3783b8a14c","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"----------"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"As an administrator, I want to be able to trigger an audit that controls the"},{"line_number":35,"context_line":"perform workload load balancing."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In order to:"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aed3d3a_b095cf41","line":35,"range":{"start_line":34,"start_character":64,"end_line":35,"end_character":31},"in_reply_to":"bae84128_0ca1dfa9","updated":"2016-03-02 06:52:47.000000000","message":"sure","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"7b19f696adc39bf0097e8815a27f02a54fcae602","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In order to:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* balance the workloads on each server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Project Priority"},{"line_number":42,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae84128_8c7ccf21","line":39,"range":{"start_line":39,"start_character":2,"end_line":39,"end_character":38},"updated":"2016-02-25 16:36:49.000000000","message":"Perhaps this should be qualified - does it guarantee an exact balance - I guess there could be tradeoffs between amount of changes to cluster state and how balanced the resulting state/solution is.","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d26284c5c70b7770738128e6e174ec3783b8a14c","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"In order to:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* balance the workloads on each server."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Project Priority"},{"line_number":42,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aed3d3a_73351145","line":39,"range":{"start_line":39,"start_character":2,"end_line":39,"end_character":38},"in_reply_to":"bae84128_8c7ccf21","updated":"2016-03-02 06:52:47.000000000","message":"The balance result is to make the workload of hypervisor be close to average workload of all hypervisors.","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"7b19f696adc39bf0097e8815a27f02a54fcae602","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Watcher already has its decision framework, so this strategy should be a new"},{"line_number":50,"context_line":"class which extend the base strategy class."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Set the threshold in 2 steps: hard coded first, then through the template."},{"line_number":53,"context_line":"  see: https://blueprints.launchpad.net/watcher/+spec/optimization-threshold"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Create a new Python class to extend the \"BaseStrategy\" class."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae84128_8cca0f4e","line":52,"range":{"start_line":52,"start_character":10,"end_line":52,"end_character":19},"updated":"2016-02-25 16:36:49.000000000","message":"Threshold needs more explanation - what this threshold does, how it is measured, etc.","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d26284c5c70b7770738128e6e174ec3783b8a14c","unresolved":false,"context_lines":[{"line_number":49,"context_line":"Watcher already has its decision framework, so this strategy should be a new"},{"line_number":50,"context_line":"class which extend the base strategy class."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Set the threshold in 2 steps: hard coded first, then through the template."},{"line_number":53,"context_line":"  see: https://blueprints.launchpad.net/watcher/+spec/optimization-threshold"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Create a new Python class to extend the \"BaseStrategy\" class."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aed3d3a_b3d159fe","line":52,"range":{"start_line":52,"start_character":10,"end_line":52,"end_character":19},"in_reply_to":"bae84128_8cca0f4e","updated":"2016-03-02 06:52:47.000000000","message":"sure","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"7b19f696adc39bf0097e8815a27f02a54fcae602","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Create a new Python class to extend the \"BaseStrategy\" class."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Use the Nova objects framework to get free CPU/Memory/Disk of hypervisors."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Use the Ceilometer client to get VM \"cpu_util\" to calculate the workloads."},{"line_number":60,"context_line":"  The time window is 5 minutes here, it uses ceilometer aggregation API"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae84128_6c3a2b36","line":57,"range":{"start_line":57,"start_character":10,"end_line":57,"end_character":32},"updated":"2016-02-25 16:36:49.000000000","message":"Is this something specific or do you mean the standard calls to nova?","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d26284c5c70b7770738128e6e174ec3783b8a14c","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Create a new Python class to extend the \"BaseStrategy\" class."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Use the Nova objects framework to get free CPU/Memory/Disk of hypervisors."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Use the Ceilometer client to get VM \"cpu_util\" to calculate the workloads."},{"line_number":60,"context_line":"  The time window is 5 minutes here, it uses ceilometer aggregation API"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aed3d3a_1363e5b2","line":57,"range":{"start_line":57,"start_character":10,"end_line":57,"end_character":32},"in_reply_to":"bae84128_6c3a2b36","updated":"2016-03-02 06:52:47.000000000","message":"Nova objects is the Watcher object that pass down to Strategy class, to get basic information of hypervisor and VMs.","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"7b19f696adc39bf0097e8815a27f02a54fcae602","unresolved":false,"context_lines":[{"line_number":57,"context_line":"* Use the Nova objects framework to get free CPU/Memory/Disk of hypervisors."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Use the Ceilometer client to get VM \"cpu_util\" to calculate the workloads."},{"line_number":60,"context_line":"  The time window is 5 minutes here, it uses ceilometer aggregation API"},{"line_number":61,"context_line":"  to get the average value of \"cpu_util\"."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae84128_2c0f8389","line":60,"range":{"start_line":60,"start_character":21,"end_line":60,"end_character":34},"updated":"2016-02-25 16:36:49.000000000","message":"is this configurable. Any comment on why you chose 5 mins?","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d26284c5c70b7770738128e6e174ec3783b8a14c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"* Use the Nova objects framework to get free CPU/Memory/Disk of hypervisors."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"* Use the Ceilometer client to get VM \"cpu_util\" to calculate the workloads."},{"line_number":60,"context_line":"  The time window is 5 minutes here, it uses ceilometer aggregation API"},{"line_number":61,"context_line":"  to get the average value of \"cpu_util\"."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aed3d3a_f3900198","line":60,"range":{"start_line":60,"start_character":21,"end_line":60,"end_character":34},"in_reply_to":"bae84128_2c0f8389","updated":"2016-03-02 06:52:47.000000000","message":"Yes, i want it be configurable. No other comments on 5 mins, just not too short to avoid the sudden change of workload and not too long to make desicion.","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19483,"name":"Sean Murphy","email":"murp@zhaw.ch","username":"murp"},"change_message_id":"7b19f696adc39bf0097e8815a27f02a54fcae602","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Performance Impact"},{"line_number":99,"context_line":"------------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"There used to be some performance issues regarding the query of metrics from"},{"line_number":102,"context_line":"the Ceilometer database. This is one of the reasons why it was rarely used in"},{"line_number":103,"context_line":"production environment. These issues may now be solved thanks to an"},{"line_number":104,"context_line":"abstraction layer which enables anybody to change the underlying metrics"},{"line_number":105,"context_line":"storage backend easily."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"There is a performance issue when you query the Nova DB to get CPU usage"},{"line_number":108,"context_line":"metrics."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bae84128_0c60bf34","line":105,"range":{"start_line":101,"start_character":0,"end_line":105,"end_character":22},"updated":"2016-02-25 16:36:49.000000000","message":"Does this need to be investigated?","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"d26284c5c70b7770738128e6e174ec3783b8a14c","unresolved":false,"context_lines":[{"line_number":98,"context_line":"Performance Impact"},{"line_number":99,"context_line":"------------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"There used to be some performance issues regarding the query of metrics from"},{"line_number":102,"context_line":"the Ceilometer database. This is one of the reasons why it was rarely used in"},{"line_number":103,"context_line":"production environment. These issues may now be solved thanks to an"},{"line_number":104,"context_line":"abstraction layer which enables anybody to change the underlying metrics"},{"line_number":105,"context_line":"storage backend easily."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"There is a performance issue when you query the Nova DB to get CPU usage"},{"line_number":108,"context_line":"metrics."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9aed3d3a_10c11be5","line":105,"range":{"start_line":101,"start_character":0,"end_line":105,"end_character":22},"in_reply_to":"bae84128_0c60bf34","updated":"2016-03-02 06:52:47.000000000","message":"Yes, depends on how the Watcher framework provides the basic metrics.","commit_id":"53aa68554b16293e9fd5946662bad887f8999294"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"35b83aa26b5098f865e0a006f95d64b7b7b80d0c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"* Use the Nova objects framework to get free CPU/Memory/Disk of hypervisors."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"* Use the Ceilometer client to get VM \"cpu_util\" to calculate the workloads."},{"line_number":61,"context_line":"  The time window is 5 minutes here, it uses ceilometer aggregation API"},{"line_number":62,"context_line":"  to get the average value of \"cpu_util\"."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9aed3d3a_a7cbc971","line":61,"range":{"start_line":61,"start_character":2,"end_line":61,"end_character":35},"updated":"2016-02-26 08:42:51.000000000","message":"If you indicate that you have a dependency on the blueprint optimization-threshold then IMHO, this time window should also be a parameter with a default value to 5.","commit_id":"95a393bca1010514fd2d0be93fa31cd9c6d85f67"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"b79e896c2a455787aa6b756a56fc05d1e3b84358","unresolved":false,"context_lines":[{"line_number":24,"context_line":"In current Data Center, VM workloads on each hypervisor may not balance, some"},{"line_number":25,"context_line":"are extremely high, some are idle, which will reduce the cooling efficiency,"},{"line_number":26,"context_line":"this strategy will balance the workloads when the VM workloads of hypervisor"},{"line_number":27,"context_line":"reaches threshold. It\u0027s better to enable live migration instead of block"},{"line_number":28,"context_line":"migration, for it costs less in time."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9aed3d3a_663b6839","line":28,"range":{"start_line":27,"start_character":19,"end_line":28,"end_character":37},"updated":"2016-02-26 15:46:55.000000000","message":"\u0027block_migration\u0027 is actually a type of live migration. Following the comments I made on https://review.openstack.org/#/c/284164/, each action will later on be able to define some platform related parameters (see blueprint action-infrastructure-parameters).\n\nSo IMHO, we should get rid of this sentence as this problem is tackled at the action level and not at the strategy one.","commit_id":"5085cacce79d5c06f2423a6227265872e92ae488"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"eca87a6a6f08a11d978f59ea1e1b6c67f2e112f4","unresolved":false,"context_lines":[{"line_number":24,"context_line":"In current Data Center, VM workloads on each hypervisor may not balance, some"},{"line_number":25,"context_line":"are extremely high, some are idle, which will reduce the cooling efficiency,"},{"line_number":26,"context_line":"this strategy will balance the workloads when the VM workloads of hypervisor"},{"line_number":27,"context_line":"reaches threshold. It\u0027s better to enable live migration instead of block"},{"line_number":28,"context_line":"migration, for it costs less in time."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9aed3d3a_ef043119","line":28,"range":{"start_line":27,"start_character":19,"end_line":28,"end_character":37},"in_reply_to":"9aed3d3a_663b6839","updated":"2016-03-02 06:53:38.000000000","message":"Agree","commit_id":"5085cacce79d5c06f2423a6227265872e92ae488"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"12b86ea3d44e9ab1c68b252dc428ce6ee12be275","unresolved":false,"context_lines":[{"line_number":13,"context_line":"This spec proposes a new Watcher migration strategy based on the VM workloads"},{"line_number":14,"context_line":"of hypervisors. This strategy makes decisions to migrate workloads to make the"},{"line_number":15,"context_line":"total VM workloads of each hypervisor balanced, when the total VM workloads of"},{"line_number":16,"context_line":"hypervisor reaches threshold."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Note: VM workloads means how much CPUs the VM instance fully used, eg a VM"},{"line_number":19,"context_line":"      instance has 4 CPUs, the VM workload range is [0.00 , 4.00]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_3a06461d","line":16,"updated":"2016-03-03 03:03:14.000000000","message":"Is the threshold specified as a function of overall hypervisor CPU utilization %?","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"ac85aa39e630181c536fbb18a64451c077e5a780","unresolved":false,"context_lines":[{"line_number":13,"context_line":"This spec proposes a new Watcher migration strategy based on the VM workloads"},{"line_number":14,"context_line":"of hypervisors. This strategy makes decisions to migrate workloads to make the"},{"line_number":15,"context_line":"total VM workloads of each hypervisor balanced, when the total VM workloads of"},{"line_number":16,"context_line":"hypervisor reaches threshold."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Note: VM workloads means how much CPUs the VM instance fully used, eg a VM"},{"line_number":19,"context_line":"      instance has 4 CPUs, the VM workload range is [0.00 , 4.00]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_c5a93e92","line":16,"in_reply_to":"7af24918_3a06461d","updated":"2016-03-03 06:52:04.000000000","message":"It\u0027s a number, not percentage.\nWe define the VM workload below, so the threshold aim for the total VM workload of hypervisor.","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"12b86ea3d44e9ab1c68b252dc428ce6ee12be275","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"In order to:"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* balance the workloads on each hypervisor, make it close to average value."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Project Priority"},{"line_number":40,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_3a2da695","line":37,"updated":"2016-03-03 03:03:14.000000000","message":"We need to be a lot more explicit about what we\u0027re measuring here--e.g., average of *what* value?  CPU utilization % on the hosts?","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"ac85aa39e630181c536fbb18a64451c077e5a780","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"In order to:"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"* balance the workloads on each hypervisor, make it close to average value."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Project Priority"},{"line_number":40,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_70074aca","line":37,"in_reply_to":"7af24918_3a2da695","updated":"2016-03-03 06:52:04.000000000","message":"Agree that, it needs to be more clearly.I will fix that.","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"12b86ea3d44e9ab1c68b252dc428ce6ee12be275","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Watcher already has its decision framework, so this strategy should be a new"},{"line_number":48,"context_line":"class which extend the base strategy class."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Set the threshold in 2 steps: hard coded first, then through the template."},{"line_number":51,"context_line":"  see: https://blueprints.launchpad.net/watcher/+spec/optimization-threshold"},{"line_number":52,"context_line":"  Threshold is the trigger value to start workload balancing."},{"line_number":53,"context_line":"  It can be the Max VCPUs number of hypervisor or less."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_5a76b2a4","line":50,"updated":"2016-03-03 03:03:14.000000000","message":"I\u0027m against having any hard-coded thresholds--it should be template-based (and if there\u0027s some reason the template solution is just a lot more work, it should at least be a watcher.conf option or something... but even this is kind of gross).  :-)","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"ac85aa39e630181c536fbb18a64451c077e5a780","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Watcher already has its decision framework, so this strategy should be a new"},{"line_number":48,"context_line":"class which extend the base strategy class."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* Set the threshold in 2 steps: hard coded first, then through the template."},{"line_number":51,"context_line":"  see: https://blueprints.launchpad.net/watcher/+spec/optimization-threshold"},{"line_number":52,"context_line":"  Threshold is the trigger value to start workload balancing."},{"line_number":53,"context_line":"  It can be the Max VCPUs number of hypervisor or less."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_f0223a51","line":50,"in_reply_to":"7af24918_5a76b2a4","updated":"2016-03-03 06:52:04.000000000","message":"Totally agree, As you see below, the https://blueprints.launchpad.net/watcher/+spec/optimization-threshold is for this purpose, will optimize the code when it is ready for use.","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"12b86ea3d44e9ab1c68b252dc428ce6ee12be275","unresolved":false,"context_lines":[{"line_number":50,"context_line":"* Set the threshold in 2 steps: hard coded first, then through the template."},{"line_number":51,"context_line":"  see: https://blueprints.launchpad.net/watcher/+spec/optimization-threshold"},{"line_number":52,"context_line":"  Threshold is the trigger value to start workload balancing."},{"line_number":53,"context_line":"  It can be the Max VCPUs number of hypervisor or less."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Create a new Python class to extend the \"BaseStrategy\" class."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_1ab8aa29","line":53,"updated":"2016-03-03 03:03:14.000000000","message":"I don\u0027t think we want this to be the vcpus value, I think it needs to be a normalized value--i.e., overall CPU utilization %.  Otherwise in a data center where you have 100 hosts, each of which may have completely different # of max vcpus, how would one specify any meaningful/universal threshold value?","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"ac85aa39e630181c536fbb18a64451c077e5a780","unresolved":false,"context_lines":[{"line_number":50,"context_line":"* Set the threshold in 2 steps: hard coded first, then through the template."},{"line_number":51,"context_line":"  see: https://blueprints.launchpad.net/watcher/+spec/optimization-threshold"},{"line_number":52,"context_line":"  Threshold is the trigger value to start workload balancing."},{"line_number":53,"context_line":"  It can be the Max VCPUs number of hypervisor or less."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Create a new Python class to extend the \"BaseStrategy\" class."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_eb152b40","line":53,"in_reply_to":"7af24918_1ab8aa29","updated":"2016-03-03 06:52:04.000000000","message":"Good point. In real data center, we also need to consider that each vcpus are different.We may need to normalize it with CPU frequency or other type. We haven\u0027t found the perfect solution yet. \nSo, this strategy of Intel POC is based on the same hardware of hosts.","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"cd131588f67d0206aef7243af6738a88f53bb5ab","unresolved":false,"context_lines":[{"line_number":50,"context_line":"* Set the threshold in 2 steps: hard coded first, then through the template."},{"line_number":51,"context_line":"  see: https://blueprints.launchpad.net/watcher/+spec/optimization-threshold"},{"line_number":52,"context_line":"  Threshold is the trigger value to start workload balancing."},{"line_number":53,"context_line":"  It can be the Max VCPUs number of hypervisor or less."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Create a new Python class to extend the \"BaseStrategy\" class."},{"line_number":56,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_8fe6ece5","line":53,"in_reply_to":"7af24918_eb152b40","updated":"2016-03-04 04:59:31.000000000","message":"I still believe that CPU utilization % would be the best universal measurement in terms of determining when a given host becomes overwhelmed (since it\u0027s relative to each host).  This is how most solutions such as DRS and the like work and it also how end-users think about this capability.","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"12b86ea3d44e9ab1c68b252dc428ce6ee12be275","unresolved":false,"context_lines":[{"line_number":60,"context_line":"  The time window is 5 minutes here, will be configurable as threshold."},{"line_number":61,"context_line":"  It uses ceilometer aggregation API to get the average value of \"cpu_util\"."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"},{"line_number":64,"context_line":"  will filter the viable targets according to the free resource information"},{"line_number":65,"context_line":"  of hypervisors from previous step and choose the one with lowest workloads."},{"line_number":66,"context_line":"  Will use select-destinations-filter when it is ready."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_3af006fe","line":63,"updated":"2016-03-03 03:03:14.000000000","message":"We don\u0027t necessarily drive the migration on the VM utilization--it should be the host-level utilization.  The host level CPU utilization can be retrieved from the Nova metrics collector [1].\n\nThe VM utilization is however needed when you\u0027re trying to figure out which VM(s) to migrate and to predict the target host\u0027s CPU utilization post-migration (i.e., so you don\u0027t try to move a VM to a host where the migration will cause the target\u0027s CPU utilization to predictably go above the threshold... otherwise you create the \"ping pong\" effect where you\u0027re simply migrating VMs between the same two hosts potentially).\n\n[1] https://github.com/openstack/nova/blob/master/nova/compute/monitors/cpu/virt_driver.py","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"ac85aa39e630181c536fbb18a64451c077e5a780","unresolved":false,"context_lines":[{"line_number":60,"context_line":"  The time window is 5 minutes here, will be configurable as threshold."},{"line_number":61,"context_line":"  It uses ceilometer aggregation API to get the average value of \"cpu_util\"."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"* An algorithm to detect if the threshold of workloads has been reached, it"},{"line_number":64,"context_line":"  will filter the viable targets according to the free resource information"},{"line_number":65,"context_line":"  of hypervisors from previous step and choose the one with lowest workloads."},{"line_number":66,"context_line":"  Will use select-destinations-filter when it is ready."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7af24918_ab1e835c","line":63,"in_reply_to":"7af24918_3af006fe","updated":"2016-03-03 06:52:04.000000000","message":"Right, the algorithm need to avoid the \"ping pong\" case.","commit_id":"03064caad995189b8a5125e6bde9488ecb506507"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"6581b4623e62e2c643a558ed325d21d8b268867b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* Set the threshold in 2 steps: hard coded first, then through the template."},{"line_number":54,"context_line":"  see: https://blueprints.launchpad.net/watcher/+spec/optimization-threshold"},{"line_number":55,"context_line":"  Threshold is the trigger value to start workload balancing."},{"line_number":56,"context_line":"  It can be the Max VCPUs number of hypervisor or less."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Create a new Python class to extend the \"BaseStrategy\" class."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7af24918_e356efcc","line":56,"range":{"start_line":56,"start_character":2,"end_line":56,"end_character":54},"updated":"2016-03-03 07:43:54.000000000","message":"Why not deal with a threshold in percentage of used vcpu rather than number of vcpu ? \nWouldn\u0027t it be easier then to deal with heterogeneous compute nodes with different capacities ?","commit_id":"ba76e9354c18b7598d55bc9bd2f0df5aab4ff021"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"ca1d87c549248b93af0bdec8e6f4fb95e183b423","unresolved":false,"context_lines":[{"line_number":53,"context_line":"* Set the threshold in 2 steps: hard coded first, then through the template."},{"line_number":54,"context_line":"  see: https://blueprints.launchpad.net/watcher/+spec/optimization-threshold"},{"line_number":55,"context_line":"  Threshold is the trigger value to start workload balancing."},{"line_number":56,"context_line":"  It can be the Max VCPUs number of hypervisor or less."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Create a new Python class to extend the \"BaseStrategy\" class."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7af24918_a6a355b1","line":56,"range":{"start_line":56,"start_character":2,"end_line":56,"end_character":54},"in_reply_to":"7af24918_e356efcc","updated":"2016-03-03 08:04:37.000000000","message":"It\u0027s the same when this Strategy requires that hosts have same CPUs.\nIf the goal is the percentage balance of heterogeneous compute notes, then it requires a way to measure the real percentage difference between VCPUs on different CPU. We haven\u0027t find a good way for it.","commit_id":"ba76e9354c18b7598d55bc9bd2f0df5aab4ff021"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"6581b4623e62e2c643a558ed325d21d8b268867b","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"3. Rewrite execute function to add the algorithm to detect the threshold and"},{"line_number":144,"context_line":"   to pick up the suitable VM to be moved and choose the target hypervisors,"},{"line_number":145,"context_line":"   generate the action plan."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7af24918_e31eef5d","line":145,"range":{"start_line":145,"start_character":12,"end_line":145,"end_character":27},"updated":"2016-03-03 07:43:54.000000000","message":"A strategy does not directly generate an action plan. It first generates a \"solution\" which contains a non scheduled list of actions.\nYou may also add a work item regarding the scheduling of actions by the Watcher planner if you plan to have some specific rules regarding scheduling (for example, do not migrate several VMs at the same time in order to prevent network overload and SLA violations).","commit_id":"ba76e9354c18b7598d55bc9bd2f0df5aab4ff021"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"ca1d87c549248b93af0bdec8e6f4fb95e183b423","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"3. Rewrite execute function to add the algorithm to detect the threshold and"},{"line_number":144,"context_line":"   to pick up the suitable VM to be moved and choose the target hypervisors,"},{"line_number":145,"context_line":"   generate the action plan."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7af24918_6392dff7","line":145,"range":{"start_line":145,"start_character":12,"end_line":145,"end_character":27},"in_reply_to":"7af24918_e31eef5d","updated":"2016-03-03 08:04:37.000000000","message":"Good to know, i will modify the \"action plan\" to \"solution\".","commit_id":"ba76e9354c18b7598d55bc9bd2f0df5aab4ff021"},{"author":{"_account_id":19214,"name":"Vincent Mahe","email":"vincent.mahe@b-com.com","username":"vmahe35"},"change_message_id":"6581b4623e62e2c643a558ed325d21d8b268867b","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* http://docs.openstack.org/developer/python-novaclient/api.html"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Testing"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7af24918_837bab8b","line":157,"updated":"2016-03-03 07:43:54.000000000","message":"IMHO, there is also a dependency with the following blueprint :\nhttps://blueprints.launchpad.net/watcher/+spec/get-goal-from-strategy","commit_id":"ba76e9354c18b7598d55bc9bd2f0df5aab4ff021"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"ca1d87c549248b93af0bdec8e6f4fb95e183b423","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* http://docs.openstack.org/developer/python-novaclient/api.html"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Testing"},{"line_number":159,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":160,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7af24918_e6071d16","line":157,"in_reply_to":"7af24918_837bab8b","updated":"2016-03-03 08:04:37.000000000","message":"Make sense.","commit_id":"ba76e9354c18b7598d55bc9bd2f0df5aab4ff021"},{"author":{"_account_id":7664,"name":"Joe Cropper","email":"jwcroppe@us.ibm.com","username":"jwcroppe"},"change_message_id":"16159d653e6b1822acd4384af1f1e8e2c0282fa1","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Note: * VM workloads means how much CPUs the VM instance fully used, eg a VM"},{"line_number":19,"context_line":"        instance has 4 CPUs, the VM workload range is [0.00 , 4.00]."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"      * This strategy is based on that all hosts have the same CPUs."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7af24918_cf42b4ad","line":21,"range":{"start_line":21,"start_character":8,"end_line":21,"end_character":68},"updated":"2016-03-04 05:02:37.000000000","message":"I don\u0027t think this is a very practical assumption.  Can\u0027t we just base this off host level CPU utilization %?  I think this will also have long-term benefit vs. just PoC logic.","commit_id":"21150e0c1fa2f7601be76a714c7802cffe8aae0b"},{"author":{"_account_id":6437,"name":"Susanne Balle","email":"sleipnir012@gmail.com","username":"susanne-balle"},"change_message_id":"66aa07506054ff544baf0ffb3772b86de2168bbd","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Note: * VM workloads means how much CPUs the VM instance fully used, eg a VM"},{"line_number":19,"context_line":"        instance has 4 CPUs, the VM workload range is [0.00 , 4.00]."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"      * This strategy is based on that all hosts have the same CPUs."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5aef4532_e2274062","line":21,"range":{"start_line":21,"start_character":8,"end_line":21,"end_character":68},"in_reply_to":"7af24918_0a55aac4","updated":"2016-03-08 19:14:02.000000000","message":"I would like to leave as is and not change to CPU utilization %. In our case we are interested in CPU utilization and not in the total % of CPU utilization.\nLet\u0027s discuss tomorrow during the spec reviews.","commit_id":"21150e0c1fa2f7601be76a714c7802cffe8aae0b"},{"author":{"_account_id":19573,"name":"junjie.huang","email":"junjie.huang@intel.com","username":"junjiehuang"},"change_message_id":"da6726ca38d39e316887a7597872914d1060e523","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Note: * VM workloads means how much CPUs the VM instance fully used, eg a VM"},{"line_number":19,"context_line":"        instance has 4 CPUs, the VM workload range is [0.00 , 4.00]."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"      * This strategy is based on that all hosts have the same CPUs."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Problem description"},{"line_number":24,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7af24918_0a55aac4","line":21,"range":{"start_line":21,"start_character":8,"end_line":21,"end_character":68},"in_reply_to":"7af24918_cf42b4ad","updated":"2016-03-04 06:03:11.000000000","message":"Ok, i can change the threshold to CPU utilization %.\nBut this Strategy really only works on this assumption.\nNeed to be optimized to another accurate normalization of VCPU performance in long term.","commit_id":"21150e0c1fa2f7601be76a714c7802cffe8aae0b"}]}
