{'fraction_non_alphanumeric': 0.01850362027353178, 'fraction_numerical': 0.002413515687851971, 'mean_word_length': 5.5473684210526315, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Optimizing Client-side Resource Utilization in Public Clouds

Public clouds such as Amazon’s Elastic Cloud Compute (EC2) and the Google Compute Engine are being increasingly used by organizations as well as individuals to rapidly set up infrastructure to deploy their applications. While these cloud providers promise flexibility and performance to users, efficient and cost-effective management of Virtual Machine (VM) clusters is difficult to achieve in practice. The coarse granularity of resource allocation and dynamically varying resource requirements of applications result in excess costs due to VM under-utilization or performance degradation on undersized VMs. The growing number of applications being moved to such cloud environments magnifies the scope of this problem. We propose a Client-side Resource Manager which uses on-demand application migration and dynamic migration policies to improve VM utilization, and extract the best possible performance from a VM cluster for a given operating cost. Two migration policies are developed and evaluated using a new simulator, created by us to rapidly validate migration policies over longer time-frames. We demonstrate improved cost-efficiency of 25% over the conventional approach.