Skip to main content
Log in

Memory allocation algorithm for cloud services

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Memory allocation has a major influence on multiuser systems, cloud-based services, virtual machines, and other computer systems. Memory allocation is a process that assigns physical or virtual memory space to programs and services as efficiently and quickly as possible. Economical memory allocation management needs allocation strategies with minimum wastage. In this paper, we introduce a new memory allocation algorithm based on sequential fits and zoning for on-demand (online) cloud services. The memory is divided into multiple zones, where a subgroup of relative request sizes compete in reverse order. We use simulation to compare our new mechanism with existing memory allocation methods that have been deployed using Amazon Elastic Compute Cloud as a test bed. The proposed algorithm is more efficient, and the average saving for the normalized revenue loss is about 7% better than best-fit and 15% better than first-fit memory allocation. In addition, we show that proposed algorithm is robust and faster and has a fairness index that is superior to that of existing techniques.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23

Similar content being viewed by others

Notes

  1. Real user request data have not been publicly released by cloud service providers yet [42].

References

  1. Maguluri S, Srikant R, Ying L (2012) Stochastic models of load balancing and scheduling in cloud computing clusters. In: IEEE INFOCOM, Hong Kong, pp 702–710

  2. Manvi SS, Shyam GK (2014) Resource management for Infrastructure as a Service (IaaS) in cloud computing: a survey. J Netw Comput Appl 41:424–440

    Article  Google Scholar 

  3. Madni S, Abd Latiff M, Coulibaly Y, Abdulhamid S (2016) Resource scheduling for Infrastructure as a Service (IaaS) in cloud computing. J Netw Comput Appl 68:173–200

    Article  Google Scholar 

  4. Ben-Yehuda OA, Ben-Yehuda M, Schuster A, Tsafrir D (2014) The rise of RaaS: the resource-as-a-service cloud. Commun ACM 57(7):76–84

    Article  Google Scholar 

  5. Barham P, Dragovic B, Fraser K, Hand S, Harris T, Ho A, Neugebauer R, Pratt I, Warfield A (2003) Xen and the art of virtualization. In: Proceedings of the 19th ACM Symposium on Operating Systems Principles and Practice, pp 164–177

  6. Kivity A, Kamay Y, Laor D, Lublin U, Liguori A (2007) KVM: The Linux virtual machine monitor. In: Proceedings of the Linux Symposium, pp 225–230

  7. Waldspurger CA (2002) Memory resource management in VMware ESX Server. In: Proceedings of the 2002 Symposium on Operating Systems Design and Implementation

  8. Ding Y, Xu H, Li P, Ding J (2016) Review of virtual memory optimization in cloud environment. In: International Conference on Intelligent Networking and Collaborative Systems, pp 53–58

  9. Costea S, Barbu M, Muraru C, Rughinis R (2013) Resource allocation heuristics for the miriaPOD platform. In: Networking in Education and Research, 2013 RoEduNet International Conference 12th Edition, vol 1, no 6, pp 26–28

  10. Weinstock C, Wulf W (1988) QuickFit: an efficient algorithm for heap storage allocation. ACM SIGPLAN 23(10):141–144

    Article  Google Scholar 

  11. Albers S, Mitzenmacher M (1998) Average-case analyses of first fit and random fit bin packing. In: Proceedings of the 9th Annual ACM-SIAM Symposium on Discrete Algorithms. Society for Industrial and Applied Mathematics, Philadelphia, pp 290–299

  12. Bays C (1977) A comparison of next-fit, first-fit, and best-fit. Commun ACM 20(3):191–192

    Article  Google Scholar 

  13. Knowlton K (1965) A fast storage allocator. Commun ACM 8(10):623–625

    Article  MATH  Google Scholar 

  14. Younis M (2012) Memory allocation technique for segregated free list based on genetic algorithm. J Al-Nahrain Univ 15(2):161–168

    Google Scholar 

  15. Sun X, Wang J, Chen X (2007) An improvement of TLSF algorithm. In: 15th IEEE-NPSS Real-Time Conference, vol 1, no 5, 29 April–4 May 2007

  16. Masmano M, Ripoll I, Crespo A, Real J (2004) TLSF: a new dynamic memory allocator for real-time systems. In: 16th Euromicro Conference on Real-Time Systems, 30 June–2 July, pp 79–88

  17. Peterson J, Norman T (1977) Buddy systems. Commun ACM 20(6):421–431

    Article  MATH  Google Scholar 

  18. Ferreira T, Matias R, Macedo A, Araujo L (2011) An experimental study on memory allocators in multicore and multithreaded applications. In: International Conference on Parallel and Distributed Computing Applications and Technologies, Gwangju, pp 92–98

  19. Elias D, Matias R, Fernandes Ma, Borges L (2014) Experimental and theoretical analyses of memory allocation algorithms. In: 29th Annual ACM Symposium on Applied Computing (SAC’14), New York, NY, USA, pp 1545–1546

  20. Chung Y, Moon S (2000) Memory allocation with lazy fits. In: International Symposium on Memory Management, Minneapolis, Minnesota, pp 65–70

  21. Wilson PR, Johnstone MS, Neely M, Boles D (1995) Dynamic storage allocation: a survey and critical review. In: International Workshop on Memory Management, vol 986, Kinross, Scotland. Springer, Berlin, pp 1–116

  22. Johnstone MS, Wilson PR (1997) The memory fragmentation problem solved? In: Proceedings of the First International Symposium on Memory Management, pp 26–36

  23. Hasan Y, Chang M (2005) A study of best-fit memory allocators. Comput Lang Syst Struct 31(1):35–48

    Google Scholar 

  24. Risco-Martin JL, Colemenar JM, Atienza D, Hidalgo JI (2011) Simulation of high-performance memory allocators. Microprocess Microsyst 35(8):755–765

    Article  Google Scholar 

  25. Park H, Choi J, Lee D, Noh SH (2015) iBuddy: inverse buddy for enhancing memory allocation/deallocation performance on multi-core systems. IEEE Trans Comput 64(3):720–732

    Article  MathSciNet  Google Scholar 

  26. GitHub (2015) Writing your own memory allocator. https://github.com/0x65/apmalloc

  27. Selman AH, Aburas A, Selman S (2014) Intelligent memory allocation based on fuzzy logic. Southeast Eur J Soft Comput 3(1):18–25

    Google Scholar 

  28. Liao X, Jin H, vol Yu S, Zhang Y (2015) A novel memory allocation scheme for memory energy reduction in virtualization environment. J Comput Syst Sci 81(1):3–15

    Article  MATH  MathSciNet  Google Scholar 

  29. Elias D, Matias R, Fernandes M, Borges L (2014) Experimental and theoretical analyses of memory allocation algorithms. In: Proceedings of the 29th Annual ACM Symposium on Applied Computing, Gyeongju, Korea, March 24–28, pp 1545–1546

  30. Ben-Yehuda OA, Posener E, Ben-Yehuda M, Schuster A, Mualem A (2014) Ginseng: market-driven memory allocation. In: Proceedings of the 10th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, Salt Lake City, UT, USA, March 1–2, pp 41–52

  31. Korf R (2002) A new algorithm for optimal bin packing. In: 18th National Conference on Artificial intelligence, Menlo Park, CA, USA, pp 731–736

  32. Alyatama A (2014) Dynamic spectrum allocation in orthogonal frequency-division multiplexing optical networks. J Eng Res 2(3):109–129

  33. Kolhar M, Abd El-atty SM, Rahmath M (2016) Storage allocation scheme for virtual instances of cloud computing. Neural Comput Appl

  34. Amazon Web Services (2015) Instance types matrix, Amazon EC2 instances. http://aws.amazon.com/ec2/instance-types

  35. Wikipedia (2014) Amazon Elastic Compute Cloud. http://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud

  36. Winston W (1991) Operations research: applications and algorithms, 2nd edn. PWS-KENT, Boston

    MATH  Google Scholar 

  37. Gera A, Xia C (2011) Learning curves and stochastic models for pricing and provisioning cloud computing services. Serv Sci 3(1):99–109

    Article  Google Scholar 

  38. Khazaei H, Miic J, Miic V, Mohammadi N (2013) Modeling the performance of heterogeneous IaaS cloud centers. In: IEEE 33rd International Conference on Distributed Computing Systems Workshops (ICDCSW), pp 232–237

  39. Khazaei H (2013) Performance modeling of cloud computing centers. Ph.D thesis, University of Manitoba Winnipeg, Manitoba, Canada

  40. Jain R, Chiu M, Hawe W (1984) A quantitative measure of fairness and discrimination for resource allocation in shared computer systems. DEC Research Report TR-301

  41. Shore J (1975) On the external storage fragmentation produced by first-fit and best-fit allocation strategies. Commun ACM 18:433–440

    Article  MATH  Google Scholar 

  42. Mashayekhy L, Nejad M, Grosu D, Vasilakos AV (2016) An online mechanism for resource allocation and pricing in clouds. IEEE Trans Comput 65(4):1172–1184

    Article  MATH  MathSciNet  Google Scholar 

  43. Lea J, Alyatama A (1995) Bandwidth quantization and states reduction in the broadband ISDN. IEEE/ACM Trans Netw 3(3):352–360

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Anwar Al-Yatama.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Al-Yatama, A., Ahmad, I. & Al-Dabbous, N. Memory allocation algorithm for cloud services. J Supercomput 73, 5006–5033 (2017). https://doi.org/10.1007/s11227-017-2069-8

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-017-2069-8

Keywords